Sortie de boucle waitwindowevent

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
fd
Messages : 70
Inscription : mar. 15/mars/2005 21:41
Localisation : Savoie

Sortie de boucle waitwindowevent

Message 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
filperj
Messages : 395
Inscription : jeu. 22/janv./2004 1:13

Message 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
Le chaos l'emporte toujours sur l'ordre
parcequ'il est mieux organisé.
(Ly Tin Wheedle)
fd
Messages : 70
Inscription : mar. 15/mars/2005 21:41
Localisation : Savoie

Message par fd »

Merci
Répondre