Ce code permet de redimensionner un dialogue MDX avec tout ses controle :) Utile si vous voulez faire un panneau de configuration redimensionnable...
Source / Exemple :
;### Redimensionnement MDX -> Les bases... ( BombStrike )
;#
;# Ce snippet va vous montrer comment créer un dialogue redimensionnable
;# grace à mdx...
;#
;# Tapez /tdial pour tester
;###
;### ALIASES ( Les aliases MDX et autres utiles )
alias tdial { if (!$dialog(tdial)) { dialog -m tdial tdial } }
alias mdx { if ($isid) { return $dll($mdxdll,$1,$2-) } | else { var %a = $dll($mdxdll,$1,$2-) } }
alias mdxini mdx SetMircVersion $version | mdx MarkDialog $dname
alias mdxdll return $scd(mdx.dll)
alias mdxbar return $scd(bars.mdx)
alias mdxdia return $scd(dialog.mdx)
alias mdxviw return $scd(views.mdx)
alias scd return $shortfn($+($scriptdir,$1-))
;### DIALOGS ( bah le dialogue )
dialog tdial {
title "Redimensionnement MDX"
size -1 -1 300 320
box "",2,0 -5 300 305
list 1,1 1 298 298,size
list 3,0 300 301 20, size
button "positioner",4,900 900 1 1
}
;### LES EVENTS ( le + important les events... )
on *:dialog:tdial:*:*:{
; a l'init on prépare tout
if ( $devent == init ) {
; on prépare MDX
mdxini
; on enleve la bordure de la StatusBar
mdx SetBorderStyle $dname 3 noborder
; on fé une statusbar ( pour redimensionner ( facultatif ) )
mdx SetControlMDX $dname 3 StatusBar sizeGrip > $mdxbar
; on fé un positioner ( obligatoire )
mdx SetControlMDX $dname 4 Positioner size minbox > $mdxdia
; on remplie la liste avec n'importe quoi sinon c'est moche :P
var %i = 1
while ( %i < $chan(0) ) {
did -a $dname 1 $chan(%i)
did -a $dname 1 $str($chr(160),5) Users: $nick($chan(%i),0)
inc %i
}
}
; si on clique
if ( $devent == sclick ) {
; si c'est le positioner qui recoit l'event, c'est que ya un redimensionnement en cours...
if ( $did == 4 ) {
; on recupere les events de ce dernier
var %r = $did($dname,$did)
; on les mets sous la forme $1, $2$, $3, etc...
tokenize 32 %r
; si l'event est le redimensionnement
if ( $1 == sizing ) {
; on recupere la nouvelle largeur
var %w = $gettok(%r,-2,32)
; on recupere la nouvelle hauteur
var %h = $gettok(%r,-1,32)
; on redimensionne avec ces 2 nouvelles valeurs... ( * signifie que la valeur de change pas )
; Syntaxe:
;
; mdx MoveControl <dialog> <id> <x> <y> <w> <h>
mdx MoveControl $dname 1 * * $calc(%w - 2) $calc(%h - 22)
mdx MoveControl $dname 2 * * %w $calc(%h - 15)
mdx MoveControl $dname 3 * $calc(%h - 20) %w *
}
}
}
}
; voila enjoy !!!! :)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.