0/5 (10 avis)
Snippet vu 4 376 fois - Téléchargée 19 fois
alias mdx.set.linebar { ;syntaxe: $dname id:min-max,id:min-max-defaut (optionel) :mode (optionel) ;exemple:$dname 1:0-100,2:20-30,45:7-12,8:0-100-50,40,1-5:v ;modes disponibles: [v] : bare verticalle (par defaut horizontal) ;retours: 1 si $dname manque, 2 si dialog es introuvable, 0 en cas de réusite var %param = $2- , %i 1 , %n = $numtok(%param,44) , %dname = $1 if (!%dname) return 1 if (!$dialog(%dname).title) return 2 while (%i <= %n) { var %curent = $gettok(%param,%i,44) , %id = $gettok(%curent,1,58) , %min = $mgettok(%curent,2,58,1,45) , %max = $mgettok(%curent,2,58,2,45) , %defaut = $mgettok(%curent,2,58,3,45) if (!%defaut) var %defaut = 0 mdx SetControlMDX %dname %id TrackBar autoticks $iif($gettok(%curent,3,58) == v, vertical) > $wdll(bars.mdx) mdx SetBorderStyle %dname %id windowedge did -i %dname %id 1 params %defaut %min %max * * * * 14 did -i %dname %id 1 tickfreq 1 inc %i } return 0 } alias wbs.mdx.table { ;syntaxe: wbs.mdx.table $dname ID section:taille var %dname = $iif($1 == x,$dname,$1) if (!$isid) && ($dialog(%dname)) && ($3) { mdx SetControlMDX %dname $2 ListView report single grid > $wdll(views.mdx) var %i 1 while ($gettok($3-,%i,32)) { var %tmp = $ifmatch , %size = %size $gettok(%tmp,2,58) , %text = %text $chr(9) $gettok(%tmp,1,58) inc %i } did -i %dname $2 1 headerdims %size did -i %dname $2 1 headertext $mid($strip($gettok(%text,1-,9)) $chr(9),2-) } } alias mdx { var %mdx = $wdll(mdx.dll) if (%mdx) dll $shortfn(%mdx) $1- else echo -s mdx.dll introuvable } alias mdxinit { if ($1) var %dname = $1- else var %dname = $dname if (!%dname) { echo -a erreur: Mdxinit: nom du dialog manquant ! | halt } else { mdx SetMircVersion $version mdx MarkDialog %dname return OK } } alias wdll { ;pour interdir l'usage d'une dll la stipuler dans un fichier Exepts.ini (se touvant dans le dossier du script) dans la section [DLLS] nom_de_la_dll=1 if ($1) { if ($readini($scriptdirExepts.ini,DLLS,$1) == 1) { return } else { if ($hget(wbs.dlls,$1)) { return $wbs.relat($shortfn($ifmatch)) } var %wdll = $wbsdir $+ dlls\ $+ $1 if (!$exists(%wdll)) { var %wdll = $findfile($mircdir,$ifmatch,1) if (%wdll) { hadd -m wbs.dlls $nopath(%wdll) %wdll } } if (%wdll) { return $wbs.relat($shortfn($ifmatch)) } } } } alias -l wbs.relat { if ($gettok($$1,1- $+ $numtok($mircdir,92),92) $+ \ == $mircdir) { if ($gettok($$1,$calc($numtok($mircdir,92) +1),92)) { return $gettok($$1,$calc($numtok($mircdir,92) +1) $+ -,92) } } else return $$1 } alias mgettok { ;permet l'imbrication de plusieurs gettok: $gettok($1-,a,c,b,d) == $mgettok($1-,a,b,c,d) if ($0) && ($isid) { var %n = $calc(($0 -1) / 2) if ($chr(46) !isin %n) { var %i 1 , %tok = 3 , %id = 2 while (%i <= %n) { var %tmp = $eval($+($,%tok),2) if (%tmp !isnum) var %tmp = $asc(%tmp) if (!%data) var %data = $gettok($1,$eval($+($,%id),2),%tmp) else var %data = $gettok(%data,$eval($+($,%id),2),%tmp) inc %id 2 inc %tok 2 inc %i } return %data } else echo -s Error: mgettok syntaxe/parametres invalides } }
12 juin 2008 à 19:52
-Il existe une autre dll, DCX, mise a jours régulièrement (contrairement a dcx), qui permet de faire entièrement ce que fait mdx, en mieux, avec des dizaine de fonctions en plus, et avec une aide relativement bien faites (mais surtout existante)
-Mdx n'est utilisé que par les personnes qui ont commencé avec mdx et qui n'ont pas envie de modifier tout leur code pour dcx (compréhensible)
Enfin malgré le commentaire négatif, au moins ça change et c'est relativement bien codé (codé a l'ancienne en tout cas, $ifmatch, mdr :')).
12 juin 2008 à 20:46
Bon sinon un peu d'accord pour les commentaires.. Le ticket d'entrée dans DCX est trop important par certains aspects (la gestion de l'algo de resizing j'avais trouvé ça difficile quand j'avais fait quelques tests). C'est vraiment dommage, parce que les dialogs avec mIRC c'est certainement une des plus grosses puissances du langage de mon point de vue, y'a une API simpliste avec une syntaxe sympa (qui sépare extrêmement bien les différents aspects de la gestion de l'UI, entre la déclaration et les évènements, et mêmes les types d'évènements entre eux) ce que je n'ai jamais vu ailleurs (que ce soit les apis perl ruby c java etc pour gtk qt wxwidgets etc...).
Bon j'arrête de parler à + :D
12 juin 2008 à 21:27
pour le $ifmatch oui j'avoue:) $v1 est valable depuis 6.16 et beaucoup sont encore en 6.14 pour cause de vieux scripts :)
12 juin 2008 à 21:57
Dcx : tu load la dll
mdx :tu load la dll
ah bah, nan, si ? nan, ah bah nan, pas de différence :|
12 juin 2008 à 22:10
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.