begin process at 2010 03 22 11:23:05
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > ALIASES POUR FASCILITER L'USAGE DE MDX (FRAMEWORK)

ALIASES POUR FASCILITER L'USAGE DE MDX (FRAMEWORK)


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :mdx, aliases, scrollbar Niveau :Débutant Date de création :12/06/2008 Date de mise à jour :12/06/2008 19:17:39 Vu :1 673

Auteur : hisoka2501

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note


 Description

il s'agit de petites aliases mdx pour fasciliter son implentation dans certains dialogs

la premiere: mdx.set.linebar
elle requier comme controle hote une "list"

usage: mdx.set.linebar DIALOG_NAME id:min-max-default:mode
explication:
- DIALOG_NAME = nom du dialog ($dname)
- id = id du controle à cibler
- min = nombre minimum de l'amplitude numerique selectionable
- max = nombre maximum de cette amplitude
- default = nombre pré-selectioné lors de la creation de l'id
- mode = par defaut l'aliase créé une bare horizontale, il est possible de spécifier que l'on veut une bare verticale avec le mode "v" (ce paramètre est optionel)

exemple:
mdx.set.linebar $dname 1:0-100,2:20-30,45:7-12,8:0-100-50,40,1-5:v
transo formera les id: 1 2 45 8 40 et 1 le 1 seras vertical
pour recuperer les resultat: $gettok($did(id).seltext,1,32)

la seconde aliase: wbs.mdx.table
elle sers a créé une sorte de tableau en grille
syntaxe: wbs.mdx.table $dname ID section:taille
exemple: wbs.mdx.table $dname 5 nom:40 prenom:80 age:30
va créer un tableau a 3 colones de 40, 80 et 30 pixels de large dans la list portant l'id 5
lors de la recuperation via $did(id).seltext les colones sont séparée par des chr(9) (a vous d'utiliser $gettok pour filtrer)

l'aliase wdll retourne le chemin de la dll à son format court et relatif, l'aliase wbs.relat retourne le chemin relatif d'un fichier (depuis mirc)

mgettok permet les imbrication de $gettok (toujours utile lors de l'usage de mdx)

les fonctions utilisant mdx DOIVENT toutes etre précédées de 'mdxinit' a l'appel du dialog (une seule fois)

installation: le code requiers: mdx.dll , views.mdx et bars.mdx dans un dossier enfant de $mircdir

Source

  • 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
  • }
  • }
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
  }
}

 Conclusion

voila j'espere avoir été assé clair et que ces aliases vous seront utiles


 Historique

12 juin 2008 19:17:39 :
petit oubli

 Sources du même auteur

SERVEUR FTP
TELECHARGEMENT DE FICHIER PAR PROTOCOLE HTTP 1.0 VIA SOCKET
Source avec Zip Source avec une capture MTOOLS : L'OUTIL DE MENCODER/MPLAYER
PENDU EN @WINDOW
JEU DE LA DEVINETTE

 Sources de la même categorie

AVOIR UNE LISTE D'UTILISATEUR EN COULEURS SELON LEURS SEXE P... par WorldDMT
COMMANDES FANTAISIES ( OP DEOP , VOICE DEVOICE ) ORIGINALES par Orona
Source avec Zip Source avec une capture CORRECTEUR par Orona
Source avec Zip Source avec une capture [DLL] DESSINER COMME LES PICWINS SUR UNE DIALOGBOX (BONUS: J... par uaip
Source avec Zip Source avec une capture [DLL] AJOUT D'UN CONTRÔLE RICHEDIT SCINTILLA SUR LES DIALOG... par uaip

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture MTOOLS : L'OUTIL DE MENCODER/MPLAYER par hisoka2501
Source avec Zip EDITB - ALIASES FAVORIS DANS L'EDITBOX (SUGGESTION, COMPLETI... par RCA ArKanis
Source avec Zip Source avec une capture CALCULATRICE MULTI-FONCTIONS par J3rK
Source avec Zip Source avec une capture SLAPS CRÉATOR par VestaX
MP3 AVEC DLL par NaNo45

Commentaires et avis

Commentaire de wims le 12/06/2008 19:52:07

Franchement je doute que ces alias soit utiles a quelqu'un et ce, pour plusieurs raisons:

-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 :')).

Commentaire de PaDa le 12/06/2008 20:46:24

Codé à l'ancienne codé à l'ancienne... c'est de la rétrocompatibilité pour pas un rond, on aurait tord de se priver, d'autant que j'ai jamais vu que ça allait être laché :p

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

Commentaire de hisoka2501 le 12/06/2008 21:27:01

ce que je reproche a dxc c'est qu'il est vraiment trop dur a metre en place coté code: des tas d'appels a la dll et je n'avais pas trouvé la doc tres claire a l'époque , de ce fait j'avais preferé mdx

pour le $ifmatch oui j'avoue:) $v1 est valable depuis 6.16 et beaucoup sont encore en 6.14 pour cause de vieux scripts :)

Commentaire de wims le 12/06/2008 21:57:46

Trop dur a mettre en place ?

Dcx : tu load la dll
mdx :tu load la dll

ah bah, nan, si ? nan, ah bah nan, pas de différence :|

Commentaire de hisoka2501 le 12/06/2008 22:10:13

je parle au niveau des syntaxes des commandes et du nombre d'argument requis

Commentaire de wims le 13/06/2008 11:47:48

Ah ok, pardon alors, mais je trouve ça quand même relativement simple, du moment que tu regardes l'aide et que tu appliques.Et il y a surement plus de paramètres parce qu'il y a plus de fonction aussi.

Commentaire de Bestdoud le 13/06/2008 14:52:56

je suis d'accord que dcx est plus puissante que mdx mais ce qui me gene dans dcx c'est que d'une version à l'autre les commandes changent et faut alors tout se retapper dans le script et des fois ce qu'on faisait avec une version précédente n'est plus possible avec la nouvelle (je parle pas de bug ici)

Commentaire de uaip le 16/06/2008 14:07:05

Simple question: que fait le mot "framework" dans le topic ? (j'avoue que c'est ce mot qui m'a (par curiosité) poussé à lire ce topic).

Commentaire de Fuji49 le 28/06/2008 19:11:58

Moi, ce qui m'a poussé à lire ce topic, c'est le mot "FASCILITER" ^^

Commentaire de uaip le 28/06/2008 19:58:37

Si, il faut quand même avouer que c'est du bon boulot (je ne connais pas tellement mdx mais ces aliases ont l'air pas mal).

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

La dll mdx [ par koko ] Quelqu'un pourrait m'expliquer comment l'utiliser car la je comprend rien... j'ai un fichier d'aide en francais mais quand je mets quelques choses ca trackbar avec mdx [ par Calak ] J'ai beau essayer, analyser l'exemple donné avec la dll, je n'arrive pas à faire une trackbar...Est ce quelqu'un pourait m'expliquer comment faire svp MDX.dll [ par jfk69 ] quelqu'un aurait il un tutorial bien fait pour utiliser mdx.dll ?et plus particulierement la fonction qui permet d'ajouter des icones (comme dans l'ex mdx.dll [ par MecModeKiller ] on *:dialog:dname:init:*:{ dll mdx.dll SetMircVersion $version dll mdx.dll MarkDialog $dname }Vous pouvez changer l'icone du dialogue, en rempl fichier .mdx (explication!!) [ par DarkFox ] The ShaDowtt d'abors merci de repondre si vous connaissez la réponse et salut (ken mm)il me semble que les fichier en .Mdx sont censé modifier l'appar avec/sans mdx ?? [ par DrAzZiK69 ] voyez vous jve améliorer mon media player et pi pr le boutton pausejve ke kan kkin clic dessus et bah il reste cliqué et kan il reclic ca fait resume, Besoin d'aide pour BARS.MDX c urgent ;) merci. [ par hackoustik ] jespere que sa va apparaitre sur le forum de script, car dur de trouver comment poster un message.bon alorsjai creer une liste dans le dialog et dans recherche commande pr mdx [ par hermes93 ] Voila je cherche une commande avec mdx.dllqui me permet de metre en couleur dans un dialog les "tab" (bouton edit text) je c modifier toutsa mais quan mdx toolbar [ par Fayen$ ] Yopkelkun pourrais plz me montrer un example de toolbar avec les dll suivant ktools.dll mdx.dll packe g rien piger a ce truc :/si possible comment con Connection mdx [ par Fayen$ ] lubon voila chuis oqp sur une toolbar, 'quelqu'un sait m'expliquer' comment on donne la commande connect,disconnet en cliquant sur le meme icone crée


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales