Page 1 sur 1

Sortie de boucle waitwindowevent

Publié : mar. 10/mai/2005 12:08
par fd
Bonjour,

Voici une question stupide, mais je ne trouve pas de réponse dans le forum. J'ai créé la boucle suivante pour tester les gadget "cliqué"; Or si je clique sur un gadget du 1er groupe pas de problème. Alors que sur un gadget du second groupe la boucle se répète indéfiniment, le bouton passant icontinuellement de oui à non. Faut-il utiliser un code initialisant le waitwindowevent avant le until. Merci.

Repeat
EventID = WaitWindowEvent()

Num = EventGadgetID()
If Num > 0 And Num < 451 ; premier groupe de gadgets
...
EndIf
If Num > 450 And Num < 466 ; deuxieme groupe de gadgets
y = Num - 450
If Aff(y) = "Oui"
Aff(y) = "Non"
Else
Aff(y) = "Oui"
EndIf
COLOR_BUTTON(Num, 860,20*y,30,20,#Vert,#Jaun,Aff(y))
EndIf

Until EventID = #PB_EventCloseWindow

Publié : mar. 10/mai/2005 20:33
par filperj
Il faut vérifier la nature de l'évènement avant de le traiter:

Code : Tout sélectionner


Repeat
   EventID = WaitWindowEvent()
   If EventID = #PB_Event_Gadget
      Num = EventGadgetID()
      If Num > 0 And Num < 451 ; premier groupe de gadgets
      ...
      EndIf
      If Num > 450 And Num < 466 ; deuxieme groupe de gadgets
      y = Num - 450
      If Aff(y) = "Oui"
      Aff(y) = "Non"
      Else
      Aff(y) = "Oui"
      EndIf
      COLOR_BUTTON(Num, 860,20*y,30,20,#Vert,#Jaun,Aff(y))
      EndIf
   EndIf
Until EventID = #PB_EventCloseWindow

En général, on utilise plutôt un "Select"

Code : Tout sélectionner

    Select WaitWindowevent()
            Case #pb_event_closewindow
             ...
            Case #pb_event_gadget
              Num = EventGadgetID()
              ...
    endselect

Publié : mar. 10/mai/2005 21:26
par fd
Merci