[R] scintillement quand guictrlsetdata dans while
Posté : jeu. 14 févr. 2008 23:53
desole pour le titre mais je me voyais pas mettre besoin d'aide ^^
je m'explique, ce soir, etant celibataire un jour de saint valentin je me suis decide a coder (pour changer), mais je m'egare....
bon..., alors, le code ci-apres fonctionne a peu pres comme je le souhaite sauf que comme le GUICtrlSetData est dans la boucle while, il est renouvelé tres souvent, d'ou les sleep, mais ca ne l'empeche pas de clignoter qq peu, comment faire ?, de plus a cause des sleeps, l envoie de la commande du bouton met un certains temp ainsi que la fermeture de la fenetre ...
...donc test suivant sur le meme principe en utilisant opt(guioneventmode) pour me passer du while et du meme coup du scintillement et des temps de latence de l interface mais, utilisant egalement un tableau, je suis completement perdu, j'ai beaucoup de mal avec les tableau et les for...next
enfin bref, surement plein d'erreur, merci d'avance pour votre aide
je m'explique, ce soir, etant celibataire un jour de saint valentin je me suis decide a coder (pour changer), mais je m'egare....
bon..., alors, le code ci-apres fonctionne a peu pres comme je le souhaite sauf que comme le GUICtrlSetData est dans la boucle while, il est renouvelé tres souvent, d'ou les sleep, mais ca ne l'empeche pas de clignoter qq peu, comment faire ?, de plus a cause des sleeps, l envoie de la commande du bouton met un certains temp ainsi que la fermeture de la fenetre ...
Code : Tout sélectionner
GUICreate("", 200, 200)
$Desc0 = "Veuillez choisir un test ..."
$Desc1 = "test n°1"
$Desc2 = "test n°2"
$Desc3 = "test n°3"
$Test = GUICtrlCreateCombo("Choix du test…", 10, 10, 180, 20)
GUICtrlSetData(-1, "test1|test2|test3", "Choix du test…")
GUICtrlCreateLabel("Description :", 10, 50)
$Desc = GUICtrlCreateLabel("", 10, 70, 180, 75)
$TestButton = GUICtrlCreateButton("TEST", 10, 160, 50, 20)
GUISetState()
While 1
$msg = GUIGetMsg()
If $msg = -3 Then ExitLoop
$GUIRead = GUICtrlRead($Test)
Select
Case $GUIRead = "Choix du test…"
GUICtrlSetData($Desc, $Desc0)
Sleep(100)
If $msg = $TestButton Then
MsgBox(0, "", $GUIRead)
EndIf
Case $GUIRead = "test1"
GUICtrlSetData($Desc, $Desc1)
Sleep(100)
If $msg = $TestButton Then
MsgBox(0, "", $GUIRead)
EndIf
Case $GUIRead = "test2"
GUICtrlSetData($Desc, $Desc2)
Sleep(1)
If $msg = $TestButton Then
MsgBox(0, "", $GUIRead)
EndIf
Case $GUIRead = "test3"
GUICtrlSetData($Desc, $Desc3)
If $msg = $TestButton Then
MsgBox(0, "", $GUIRead)
EndIf
EndSelect
WEnd
Exit
Code : Tout sélectionner
#include<GuiConstants.au3>
Dim $x
Opt("GUIOnEventMode", 1)
$Test = "test1|test2|test3"
$Desc = "test n°1|test n°2|test n°3"
Global Const $a_Test = StringSplit($Test, "|")
Global Const $a_Desc = StringSplit($Desc, "|")
GUICreate("", 200, 200)
$Combo = GUICtrlCreateCombo("Choix du test…", 10, 10, 180, 20)
GUICtrlSetData(-1, $Test, "Choix du test…")
GUICtrlCreateLabel("Description :", 10, 50)
$DescLabel = GUICtrlCreateLabel("", 10, 70, 180, 75)
;GUICtrlSetOnEvent(GUICtrlSetData($DescLabel, $a_Desc[$x]), "_TestDesc")
GUICtrlSetOnEvent($DescLabel, "_TestDesc")
$TestButton = GUICtrlCreateButton("TEST", 10, 160, 50, 20)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
GUISetState()
While 1
Sleep(10)
WEnd
Func _TestDesc()
For $x = 1 To $a_Test[0]
If GUICtrlRead($Combo) = $a_Test[$x] Then GUICtrlSetData($DescLabel, $a_Desc[$x])
Next
EndFunc ;==>_TestDesc
Func _Exit()
Exit
EndFunc ;==>_Exit