Identifieur / dialog

Résolu
oowaka Messages postés 117 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 24 février 2006 - 11 juin 2005 à 16:35
oowaka Messages postés 117 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 24 février 2006 - 12 juin 2005 à 20:06
bonjour

je voudrait créer un identifieur qui retourne la valeur d'une variable créée dans un dialog



donc je créée la variable dans le dialog (ceci fonctionne correctement)

ensuite je fait cela :



alias col {

if ( %color == aléatoire ) { return ctrl+k $+ $r(0,15) }

else { return %color }

}



mais la ça ne fonctionne plus...

ça ne me retourne rien du tout...

pouvez vous me dire ce qui ne va pas svp ?

20 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
11 juin 2005 à 21:23
Voice un alias qui te retourne la couleur voulus :

alias co {

if (!$1) { echo -a Manque de paramettre }

elseif ($1 && !$2) { return $+($chr(3),$1) }

elseif ($1 && $2) { return $+($chr(3),$1,$chr(44),$2) }

}

Pour ton dialog je te conseille de faire deux combo drop ( un pour la couleur du texte et un pour la couleur de fond )

Et fait un didtok avec les color genre : didtok nom id 44 blanc.noir,etc.tu inscris dans lordre les couleur de 0 a 15

et lorsque l'on clique sur une couleur tu prend la ligne selectionner
et tu lui enleve 1 a cause du decalage ( dans une list la premiere
ligne selectionner vaut 1 ) donc si tu prend la couleur rouge comme
texte et noir comme fond, lors du clique tu set une variable %text
$calc($did(id).sel-1) et %fond c'est pareil

Ce qui donne pour %text 5 - 1 pour le rouge donc 4 et 2-1 pour le noir



et lors de l'alias

alias col {

if (!%text) { halt }

elseif (%text && %fond) { return $+($chr(3),$1,$chr(44),$2) }

elseif (%text && !%fond) { return $+($chr(3),$1) }

}



J'espere que ca t'aidera :)
3
MaX_62 Messages postés 879 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 29 juin 2007
11 juin 2005 à 16:54
La syntaxe de ton alias est correcte...
Place un /echo -a %color au début de celui ci pour voir ce que contient ta variable, ou montre nous le code du dialogue...



-=[MaX_62]=-
0
oowaka Messages postés 117 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 24 février 2006
11 juin 2005 à 16:58
on *:dialog:écriture:sclick:34:{

if ( $did(2).state == 1 ) { set %color  }

if ( $did(4).state == 1 ) { set %color ctrl+k 15 }

if ( $did(5).state == 1 ) { set %color ctrl+k 14 }

if ( $did(6).state == 1 ) { set %color ctrl+k 1 }

if ( $did(7).state == 1 ) { set %color ctrl+k 8 }

if ( $did(8).state == 1 ) { set %color ctrl+k 7 }

if ( $did(9).state == 1 ) { set %color ctrl+k 4 }

if ( $did(10).state == 1 ) { set %color ctrl+k 5 }

if ( $did(11).state == 1 ) { set %color ctrl+k 11 }

if ( $did(12).state == 1 ) { set %color ctrl+k 10 }

if ( $did(13).state == 1 ) { set %color ctrl+k 12 }

if ( $did(14).state == 1 ) { set %color ctrl+k 2 }

if ( $did(15).state == 1 ) { set %color ctrl+k 13 }

if ( $did(16).state == 1 ) { set %color ctrl+k 6 }

if ( $did(17).state == 1 ) { set %color ctrl+k 9 }

if ( $did(18).state == 1 ) { set %color ctrl+k 3 }

}
0
oowaka Messages postés 117 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 24 février 2006
11 juin 2005 à 17:00
pups jai oublier cette ligne avant l'accolade : (ms ds le code elle y est déja)

if ( $did(33).state == 1 ) { set %color aléatoire }
0

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

Posez votre question
fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
11 juin 2005 à 17:04
il faut que tu te serve de l'identifieur comme ça:



//echo -a $col()



puisque tu fais un return dans l'alias
0
oowaka Messages postés 117 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 24 février 2006
11 juin 2005 à 17:10
fjxokt j'ai essayer ce que tu vien de me proposé mais cela ne fonctionne pas : il n'y a mêm plus aucun text qui s'affiche...

alors que précédemmen si mais sans le code couleur : il agissait tout comme un $null
0
oowaka Messages postés 117 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 24 février 2006
11 juin 2005 à 17:12
enfet cet alias sera utiliser dans un input :

on *:input:*:{

msg $active $col $1-

}
0
fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
11 juin 2005 à 18:36
dsl mais moi j'ai essayé ton alias, et ça fonctionne tres bien...
0
oowaka Messages postés 117 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 24 février 2006
11 juin 2005 à 20:18
ben justement c'est ce que je ne compren pas : si on suis la logique
des choses ça devrait fonctionner... ms ce n'est pas le cas ! :s
0
fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
11 juin 2005 à 20:54
ya pas 50 possibilités

soit ta var %color est $null

soit tu te sert mal de l'alias

n'aurai-tu pas par hasard 2 alias col ? (ça arrive ce genre d'erreur)



montre nous ton code complet se sera plus facile
0
oowaka Messages postés 117 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 24 février 2006
11 juin 2005 à 21:36
fjxokt non il n'y as pas 2 aliases col ...

dsl je ne montre pas le code en entier : il y en a long...

wims merci , je vai essayer !
0
oowaka Messages postés 117 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 24 février 2006
11 juin 2005 à 21:49
wims juste une question stp :

ds didtok nom id 44 noir.blanc ( pour ton exemple ) a quoi sert le 44 :
j'ai chercher dans l'aide sans résultat ( j'ai peut être pas
effectivement assez chercher mais je ne l'ai tout de même pas trouver
dans les dialogs )

merci d'avance
0
fjxokt Messages postés 840 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 février 2009 1
11 juin 2005 à 22:05
le 46 (plus generalement le chiffre), c'est le token de separation entre tes differents mots

là le token c'est 46 car $chr(46) c'est le point ( hein wims )



donc

didtok nom id 46 noir.blanc.rouge.vert.bleu.etc


ou

didtok nom id 44 noir,blanc,rouge,vert,bleu,etc




ou ce que tu veux
0
oowaka Messages postés 117 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 24 février 2006
11 juin 2005 à 22:07
ok merci fjxokt !!! désolé si s'était une question bête mais je commence dans les dialogs...

et je le fait sans aucun logiciel d'aide : tout a la tête , ça m'amuse plus...
0
oowaka Messages postés 117 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 24 février 2006
11 juin 2005 à 22:45
désolé d'encore vous embêter mais comment faire pour que
lorsqu'on reouvre le dialog réapparaisse dans le combo la ligne
que l'on avai choisi avant de le refermer ( que faut il mettre pour
cela en variable et qu'elle option choisir après le /did dans le on
*:dialog:nom:init:*:{ ... } )
0
oowaka Messages postés 117 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 24 février 2006
11 juin 2005 à 22:47
par exemple si on avai choisi la couleur noire réapparaisse dans le combo noir
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
12 juin 2005 à 00:12
Ben simplement lorsque tu selectionne un truc dans un des combo tu set une var avec la ligne selectionner donc

if ($dname == *) {

if ($devent == sclick) {

if ($did == id) { set %sel $did(id).sel }

elseif ($did == id1) { set %sel1 $did(id).sel }



apres dans le init tu regarde si les variable pour chaque combo exist et si elle existe tu coche la ligne //help /did
0
oowaka Messages postés 117 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 24 février 2006
12 juin 2005 à 09:18
donc dans le init il faut faire

did -c nom id %sel

bien cela ???

si oui ça ne fonctionne pas : parce que je l'ai essayer...


merci quand même
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
12 juin 2005 à 13:44
J'ai fait un exemple a l'arrache :



dialog j {

title "New Project"

size -1 -1 120 109

option dbu

list 1, 0 13 50 56, size

button "Button", 2, 70 83 37 12, ok cancel

}



on *:dialog:j:*:*:{

if ($devent == init) {

didtok j 1 44 blanc,noir,vert,etc...

if (%sel) { did -c j 1 %sel }

}

elseif ($devent == sclick) {

if ($did == 1) { set %sel $did(1).sel }

}

}



Essaye ce code ( /dialog -m j j )

Et base toi la dessus :)
0
oowaka Messages postés 117 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 24 février 2006
12 juin 2005 à 20:06
ok merci wims !!! ;)
0
Rejoignez-nous