Page 1 sur 1

[R] Désactiver une checkbox si une autre est cochée

Posté : ven. 31 août 2007 08:55
par Vins83
Bonjour a tous,aprés plusieurs tentatives avec :

Code : Tout sélectionner

If BitAND ( GUICtrlRead ( $Optimisersysteme ) , $GUI_CHECKED ) Then

pas moyen de disabel une autre checkbox.

Une idée ?

Merci beaucoup

@+ vins

Posté : ven. 31 août 2007 22:39
par Tlem
Ca ne serait pas plutôt :

Code : Tout sélectionner

If BitAND(GUICtrlRead($Optimisersysteme),$GUI_CHECKED)=$GUI_CHECKED  Then
GUICtrlSetState ($AutreCB, 0)
EndIf

Posté : sam. 01 sept. 2007 11:21
par Vins83
Ta solution n'a pas marché,alors j'ai essayer ça:

Code : Tout sélectionner

If $OptimiserJkDefrag = $GUI_CHECKED Then 
$OptimiserJkDefrag2 = $GUI_UNCHECKED 
EndIf
Mais pareille,le résultat est nada..

Je continu les tests. Merci

@+ Vins

Posté : sam. 01 sept. 2007 12:14
par Vins83
Voilà ma solution:

Code : Tout sélectionner

; Defragmentation JkDefrag complete 
If BitAND ( GUICtrlRead ( $OptimiserJkDefrag2 ) , $GUI_CHECKED ) Then 
GUICtrlSetState ( $OptimiserJkDefrag , $GUI_UNCHECKED ) 
RunWait ( @ProgramFilesDir & "\JkDefrag\JkDefragCmd.exe - a 4 - l" , "" , @SW_HIDE ) 
Sleep ( 250 ) 
EndIf 
; Defragmentation JkDefrag rapide 
If BitAND ( GUICtrlRead ( $OptimiserJkDefrag ) , $GUI_CHECKED ) Then 
RunWait ( @ProgramFilesDir & "\JkDefrag\JkDefragCmd.exe - a 3 - l" , "" , @SW_HIDE ) 
Sleep ( 250 ) 
EndIf

Je privillégie la defrag complete a la rapide,donc :

Code : Tout sélectionner

GUICtrlSetState ( $OptimiserJkDefrag , $GUI_UNCHECKED )
En fait l'action unchecked a lieu au moment de l'execution du script et pas pendant le choix,mais le résultat est le meme..

@+ Vins

Posté : sam. 01 sept. 2007 14:26
par sylvanie
Petite précision,
il vaut mieux utiliser ce qu'à dit Tlem pour le BiTAND.
A savoir

Code : Tout sélectionner

BitAND ( GUICtrlRead ( $OptimiserJkDefrag2 ) , $GUI_CHECKED )=$GUI_CHECKED
car

Code : Tout sélectionner

BitAND ( GUICtrlRead ( $OptimiserJkDefrag2 ) , $GUI_CHECKED )
seul sous entend =1, or ici ça marche car $GUI_CHECKED = 1...

mais si tu faisis le check inverse :

Code : Tout sélectionner

BitAND ( GUICtrlRead ( $OptimiserJkDefrag2 ) , $GUI_UNCHECKED )
ceci ne marcherai pas car le =1 est toujours sous entendu, mais $GUI_UNCHECKED=4

Posté : sam. 01 sept. 2007 14:31
par Tlem
Vins83 a écrit :Voilà ma solution:

Code : Tout sélectionner

; Defragmentation JkDefrag complete
If BitAND ( GUICtrlRead ( $OptimiserJkDefrag2 ) , $GUI_CHECKED ) Then 
GUICtrlSetState ( $OptimiserJkDefrag , $GUI_UNCHECKED )
????? C'est bien ce que je vous avais donné comme réponse, non ?
Ne connaissant pas le nom de votre 2ième contrôle ($OptimiserJkDefrag) j'avais mis $AutreCB.

Posté : sam. 01 sept. 2007 16:23
par sylvanie
Ceci n'avait pas marcher à cause du 0 :

Code : Tout sélectionner

GUICtrlSetState ($AutreCB, 0)[/autoit]

à la place de 
[autoit]GUICtrlSetState ($AutreCB,$GUI_UNCHECKED)
Mais effectivement, tu avais donné la bonne syntaxe.

Posté : sam. 01 sept. 2007 20:53
par Tlem
Ha ok.

Il m'avais sembler que $GUI_UNCHECKED était toujours égal à 0.

Autant pour moi.