cs_KiNdErMaXi
Messages postés1052Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention30 novembre 2009
-
13 déc. 2008 à 14:42
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 2009
-
14 déc. 2008 à 20:42
Hello,
J'ai un problème avec la mdx.dll.
En effet, je veux faire une toolbar dans un dialog mais ce n'est possible que si mdx.dll est à la racine du script.
Voici le code qui ne fonctionne pas :
dialog ftp2 {
title "New Project"
size -1 -1 366 216
option dbu
list 1, 4 3 357 18, size
}
on *:dialog:ftp2:*:*:{
if $devent == init {
dll ftp/dll/mdx.dll MarkDialog $dname
dll ftp/dll/mdx.dll SetControlMDX $dname 1 ToolBar list wrap flat arrows nodivider > ftp/dll/bars.mdx
dll ftp/dll/mdx.dll SetBorderStyle $dname 1
did -i $dname 1 1 bmpsize 16 16
did -i $dname 1 1 setimage icon small $icoftp(down)
did -i $dname 1 1 setimage icon small $icoftp(envoyer)
did -a $dname 1 +a 1 $chr(9) Kikoo
did -a $dname 1 +a 2 $chr(9) LOL
}
}
Quand je dis qu'il ne fonctionne pas, c'est qu'il n'affiche pas les icones et qu'il affiche les "did -i" comme du texte dans la list.
J'ai essayé le même code avec la dll à la racine du script, et ça fonctionne :
dialog ftp3 {
title "New Project"
size -1 -1 366 216
option dbu
list 1, 4 3 357 18, size
}
on *:dialog:ftp3:*:*:{
if $devent == init {
dll mdx.dll MarkDialog $dname
dll mdx.dll SetControlMDX $dname 1 ToolBar list wrap flat arrows nodivider > ftp/dll/bars.mdx
dll mdx.dll SetBorderStyle $dname 1
did -i $dname 1 1 bmpsize 16 16
did -i $dname 1 1 setimage icon small $icoftp(down)
did -i $dname 1 1 setimage icon small $icoftp(envoyer)
did -a $dname 1 +a 1 $chr(9) Kikoo
did -a $dname 1 +a 2 $chr(9) LOL
}
}
J'avoue que je comprends pas pourquoi ça ne fonctionne pas. J'ai essayé en rajoutant $mircdir avant le chemin, mais ça ne fonctionne pas non plus.
Je tiens aussi à préciser que j'en avais fait une y'a pas longtemps pour un autre truc et ça fonctionnait niquel, même avec les chemins. Pourtant il n'y a pas de différences dans le code.
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 13 déc. 2008 à 16:00
Je n'ai jamais utilise mdx, mais que renvois l'alias icoftp ?
Verifie les chemins, ecris les en dur ds le code (pas ftp/machin mais C:\machin...\mirc\km\ftp...)
cs_KiNdErMaXi
Messages postés1052Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention30 novembre 20092 13 déc. 2008 à 16:20
J'ai essayer en les écrivant en dur et c'est pareil. Je sais pas si t'as remarqué aussi mais dans le code qui fonctionne, le chemin "ftp/dll/bars.mdx" fonctionne bien pour bars.mdx, donc ça prouve que le chemin est bon.
alias icoftp return ftp/icones/ $+ $$1 $+ .ico Mais ça ne vient pas de ça, puisque même si mdx ne trouve pas l'icône, il met une icône d'erreur.
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 13 déc. 2008 à 16:30
Pas un probleme d'espace ? (je remarque qu'il manque les quotes sur tes repertoires)
Juste comme ca, //echo -a $exists(ftp/dll/mdx.dll) - $exists(ftp/dll/bars.mdx)
renvois bien $true - $true ? logiquement, non ;]
Si tu essayes sur un mirc vierge, genre tu pars sur la racine de ton script (je considere que ca va marcher), essaye ensuite de le deplacer ds un autre repertoire, enfin je dis un peu tout ce qui me semble possible :)
cs_KiNdErMaXi
Messages postés1052Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention30 novembre 20092 13 déc. 2008 à 17:06
Bon alors,
Le //echo -a $exists(ftp/dll/mdx.dll) - $exists(ftp/dll/bars.mdx) renvoie bien des $true (ouf je suis pas fou !)
J'ai tenté le code dans un mIRC vierge, et ça ne fonctionne même pas avec la dll dans la racine... Donc y'a un truc qui m'échappe...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 13 déc. 2008 à 17:51
A partir du moment ou ca ne fonctionne pas a la racine d'un mirc vierge, ca deviens dur de t'aider.
Essaye de faire : //echo $mircdir - $mircini
Ca va *p-e* t'aider mais je dis p-e des conneries :)
Quel $os, $version ? et est ce que les repertoires $mircdir et $mircini sont different ? ou est ta dll, ton code qui l'apelle etc ? Si tu as Vista, j'ai envie de dire bingo :(
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 13 déc. 2008 à 22:19
Personne n'oblige à mettre mdx dans le même dossier que mIRC.
J'étais en train de t'écrire qu'il se pouvait que les chemins des icones soient relatifs au dossier de mdx (et non de mIRC) puis j'ai préféré essayer avant d'écrire une éventuelle connerie. J'ai eu raison, chez moi ça marche très bien.
Voilà le code qui marche : (changements en rouge)
on *:dialog:ftp:*:*:{
if $devent == init {
dll dll/mdx.dll MarkDialog $dname
dll dll/mdx.dll SetControlMDX $dname 1 ToolBar list wrap flat arrows nodivider > dll/bars.mdx
dll dll/mdx.dll SetBorderStyle $dname 1
did -i $dname 1 1 bmpsize 16 16
did -i $dname 1 1 setimage icon small $icoftp(down)
did -a $dname 1 +a 1 Kikoo $chr(9)
did -i $dname 1 1 setimage icon small $icoftp(envoyer)
did -a $dname 1 +a 2 LOL $chr(9)
}
}
Le $char(9) c'est pour signaler la fin d'un ID de la toolbar et donc le début d'un autre. Si tu le mets avant le texte, je doute fort qu'il s'affiche. Puis faut mettre 1 pour les 2 icones (aucune logique mais bon, c'est comme ça).
PS : dans toutes tes options "list wrap flat arrows nodivider", il n'y a que "list" (qui aligne le texte à droite de l'icone au lieu de le mettre en dessous) et "nodivider" qui suffisent, non ? A moins que Vista soit si différent, dans ton cas les autres ne servent à rien.
Bon scripting.
cs_KiNdErMaXi
Messages postés1052Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention30 novembre 20092 14 déc. 2008 à 16:11
J'ai testé ton code uaip, le code exacte, c'est à dire avec tes chemins (évidemment j'ai mis mdx.dll et bars.mdx dans un dossier dll). Ca fonctionne parfaitement !
Saaaaaauf quand je rechange le chemin et que je rajoute le dossier ftp dans le chemin (celui ci devient ftp/dll/mdx.dll)
Là ça ne fonctionne plus.
Tu peux tester chez toi si ça fonctionne avec deux dossiers entre la racine et la dll ?
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 14 déc. 2008 à 17:13
Ca marche aussi. Peu importe où sont les icones et les fichiers dlls, du moment que le chemin est bien spécifié, ça fonctionne.
Soit tu es perfectionniste et veux vraiment comprendre où est le problème, soit ne t'en fais pas, ne te casse pas la tête pour un problème si "minime".
cs_wims
Messages postés2466Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention 1 août 20101 14 déc. 2008 à 17:16
Si tu essayes cette methode en changeant le nom du repertoire "ftp" en "testpath" par exemple, marche pas non plus ? Essaye aussi plus de profondeur entre la racine de mirc et ceui ou se trouve la dll.
Essaye aussi un mirc vierge installe ds un repertoire nomme ftp (ou la racine s'apelle ftp)
Il faut aussi penser que mdx n'a pas ete coder pour vista, ca peut p-e jouer, pense a utiliser DCX qui est mieux de toute facon =)
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 14 déc. 2008 à 17:45
Oui j'avais lu aussi qu'un mec avait des problèmes à cause de sa version de mdx (trop ancienne). Sur la mienne je lis "0.91.2.0".
Et non je suis pas sous Vista. Ceci peut donc aussi expliquer cela.
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 14 déc. 2008 à 20:38
Hello, je n'ai lu qu'en diagnoale, et je vais peut être répondre un peu à côté de la aque. Je c/c ci-dessous des aliases utiles pour MDX que j'utilisais pas mal :
Alias mdxctlgen { return System\Dlls\ctl_gen.mdx }
Alias mdxdialog { return System\Dlls\dialog.mdx }
Alias mdxbars { return System\Dlls\bars.mdx }
;Syntaxe : $mdxGB(<dialog>,,
[Child] [Child])
;Objet : retourne le texte contenu dans une branche d'une treeview mdx
;Note : Get Branch
Alias mdxGB {
if $dialog($1) {
var %d $1,%i $2
did -i scan $2 1 cb root $deltok($3,-1,32)
return $did($1,$2,1,$gettok($3,-1,32))
}
}
Je vois pas le "SetMircVersion" dans ton truc, je ne sais pas si ça a une quelconque importance. En tout cas je te conseille ces aliases, si tu changes des paths ou si tu fais des esssais ça t'évite de chercher à plusieurs endroits. Bon courage ;-)
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 14 déc. 2008 à 20:42
Oh, précision, avant qu'on me fasse un procès de ripping : les premiers aliases sont (étaient ? DCX ?) utilisés partout, et le dernier est un truc über utile pour attrapper le texte courant d'une treeview, ça doit être dunkelzahn qui l'avait pondu je crois...
My 2 cents ;-)