Dialog: did -b imbriqués

Résolu
Signaler
Messages postés
111
Date d'inscription
dimanche 31 août 2003
Statut
Membre
Dernière intervention
14 août 2005
-
Messages postés
111
Date d'inscription
dimanche 31 août 2003
Statut
Membre
Dernière intervention
14 août 2005
-
plop plop les gens



voici mon soucis:

dans un dialogue j'ai mis un check qui doit passer toute une tab en
"result" et dans cette tab il y a un autre check qui passe la moitié de
cette tab en result aussi. (on "deverouille" la moitié de la tab que si
le 1er check est lui meme "ouvert")



donc en toute logique j'ai mis un:

if %var-1er-check == 1 { did -c $dname 25 1 | did -b dialog 27,28,29,30,31,32,33,39,40,41,42 }

if %var-2e-check == 1 { did -c $dname 33 1 | did -b dialog 27,28,29,30,31,32 }



mais quand %var-2e-check == 1 le "did -b" du did 25 marche pas sur les "otpions" 27 a 32

en clair si le 2e check est actif il bloque le 1er check...



existe te t'il un moyen de faire predominer le 1er check sur le 2e ? ou autre chose pour que ca marche enfin :/



merci d'avance




('' )

5 réponses

Messages postés
216
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
16 mars 2006

Je vois que sur chaque click tu vas verifier l'état de tous tes controles.
Le script évaluera les if dans l'ordre où tu les as mis, si tu veux que l'état du bouton 2 soit prédominant il te suffit de placer son if en dernier.
tu as mis :

on *:dialog:dialogue:sclick:*:{
if $did(25).state == 0 { did -b dialogue 30,31,33,39,40 | set %2 0 }
if $did(25).state == 1 { did -e dialogue 30,31,33,39,40 | set %2 1 }
if $did(33).state == 0 { did -b dialogue 30,31 | set %1 0 }
if $did(33).state == 1 { did -e dialogue 30,31 | set %1 1 }
}

Replace ta première ligne en dernier :

on *:dialog:dialogue:sclick:*:{
if $did(25).state == 1 { did -e dialogue 30,31,33,39,40 | set %2 1 }
if $did(33).state == 0 { did -b dialogue 30,31 | set %1 0 }
if $did(33).state == 1 { did -e dialogue 30,31 | set %1 1 }
if $did(25).state == 0 { did -b dialogue 30,31,33,39,40 | set %2 0 }
}

Comme cela à chaque click il vérifiera en dernier l'état de 2 et tous tes controles seront désactivés si 2 n'est pas coché.
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Si j'ai bien compris , utilise elseif
Messages postés
111
Date d'inscription
dimanche 31 août 2003
Statut
Membre
Dernière intervention
14 août 2005

bah en fait c'est pas tout a fait ca :/



si je coche le 1er check ca doit passer toute la tab en result sans se soucier des autres checks...



le "elseif" marche pas j'avais deja essayé :o)

('' )
Messages postés
111
Date d'inscription
dimanche 31 août 2003
Statut
Membre
Dernière intervention
14 août 2005

en fait je vais montrer le code ca sera peut etre plus simple :x



dialog dialogue {

title "dialogue"

size -1 -1 235 125

option dbu

button "Valider", 1, 100 104 35 11, ok

button "Annulé", 8, 138 104 35 11, cancel

button "Tester", 9, 62 104 35 11

tab "tab 1", 21, 0 -3 233 122

tab "tab 2", 22

combo 30, 13 42 52 50, result tab 22 drop

combo 31, 13 64 52 50, result tab 22 drop

check "1", 33, 5 93 111 10, tab 22

combo 39, 127 64 52 50, result tab 22 drop

combo 40, 127 42 52 50, result tab 22 drop

check "2", 25, 36 14 160 10, tab 22

}

on *:dialog:dialogue:init:*:{

if %1 == 1 { did -c $dname 33 1 | did -b dialogue 30,31 }

if %2 == 1 { did -c $dname 25 1 | did -b dialogue 30,31,33,39,40 }

}

on *:dialog:dialogue:sclick:9:echo -a test

on *:dialog:dialogue:sclick:*:{

if $did(25).state == 0 { did -b dialogue 30,31,33,39,40 | set %2 0 }

if $did(25).state == 1 { did -e dialogue 30,31,33,39,40 | set %2 1 }

if $did(33).state == 0 { did -b dialogue 30,31 | set %1 0 }

if $did(33).state == 1 { did -e dialogue 30,31 | set %1 1 }

}



j'ai essayé de garder que ce qui nous interesse :o) (d'ou le fait que le dialogue ressemble a rien xD )



donc la:

si 1 et 2 sont decochés la tab 2 est toute est result

si 1 et 2 sont cochés la tab 2 est active en entier



mais si je decoche 2 sans avoir decoché 1 j'ai qu'une moitier de dialogue qui passe en result...



comment faire pour tout remettre en result sans avoir a decocher 1 ?



('' )
Messages postés
111
Date d'inscription
dimanche 31 août 2003
Statut
Membre
Dernière intervention
14 août 2005

ouaiiiii ca marche enfin

merci Nolson

('' )