Problème de chemin avec mdx

cs_KiNdErMaXi Messages postés 1052 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 30 novembre 2009 - 13 déc. 2008 à 14:42
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 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.

Merci !

16 réponses

cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
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...)
0
cs_KiNdErMaXi Messages postés 1052 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 30 novembre 2009 2
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.
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
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 :)
0
cs_KiNdErMaXi Messages postés 1052 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 30 novembre 2009 2
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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
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 :(
0
cs_KiNdErMaXi Messages postés 1052 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 30 novembre 2009 2
13 déc. 2008 à 19:18
Vista & mIRC 6.35 :')

Bon j'ai fais pleins de tests différentes et j'en arrive à la conclusion suivante : ça me gave !
Je laisse la dll à la racine et puis basta !

Merci qd même Wims :)
0
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Derniè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.

Cordialement, uaip.
0
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
13 déc. 2008 à 22:20
J'ai oublié de remettre tes noms de chemins, tiens (j'ai laissé ceux de mes tests) puis de renommer ton dialog en ftp2.

Cordialement, uaip.
0
cs_KiNdErMaXi Messages postés 1052 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 30 novembre 2009 2
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 ?
0
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Derniè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".

Cordialement, uaip.
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
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 =)
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
14 déc. 2008 à 17:37
Uaip, tu n'es pas sous vista si ?
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
14 déc. 2008 à 17:37
Essayez aussi de donner vos version de la dll (dsl pour les enchainement de post)
0
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Derniè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.

Cordialement, uaip.
0
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
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 :

;#Aliases Mdx.dll

Alias Mdx { dll System\Dlls\mdx.dll $1- }

Alias mdxinit { mdx SetMircVersion $version | mdx MarkDialog $iif($1,$1,$dname) }

Alias mdxviews { return System\Dlls\views.mdx }

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 ;-)
0
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
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 ;-)
0
Rejoignez-nous