Page 1 sur 1

[RESOLU] Tester état d'un DisableGadget

Publié : ven. 05/nov./2021 14:07
par omega
Bonjour,

J'ai un gadget qui est parfois activé parfois non (DisableGadget(0,Etat)), y a t-il un moyen de savoir la valeur de l'état du gadget (si le gadget est activé ou pas)?

Merci

Re: Tester etat d'un DisableGadget

Publié : ven. 05/nov./2021 14:26
par Mindphazer

Re: Tester etat d'un DisableGadget

Publié : ven. 05/nov./2021 15:32
par Ar-S
Pour ma part je procéderai comme ça.

Code : Tout sélectionner

; Proce qui remplace DisableGadget et qui ajoute un état
Procedure ToggleGadgetState(gad)  
    If GetGadgetData(gad) = 0 Or GetGadgetData(gad) = 2
        DisableGadget(gad,1)
        SetGadgetData(gad,1)
    Else
        DisableGadget(gad,0)
        SetGadgetData(gad,2)
    EndIf
EndProcedure

; Proce qui récupère cet état
Procedure CatchGadgetState(gad)
        ;0 : non initialisé
    ;1 : disable
    ;2 : enable
    ProcedureReturn GetGadgetData(gad)
EndProcedure


If OpenWindow(0, 0, 0, 220, 100, "Exemple...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

   ButtonGadget  (1, 10, 10, 200, 30, "Quitter")
   ButtonGadget  (2, 10, 40, 200, 30, "clic")
    Debug "clic sur le bouton 2 (résultat 1 = gadget disable - Résultat 2 = gadget enable)"
   Repeat
     Event = WaitWindowEvent()
     
     Select Event
     
       Case #PB_Event_Gadget
         Select EventGadget()
           Case 1 
              CloseWindow(0)
              End
          Case 2
              clic = ToggleGadgetState(1)
              Debug "Gadget 1 : " + CatchGadgetState(1)
         EndSelect
            
     EndSelect
   Until Event = #PB_Event_CloseWindow
 EndIf

Re: Tester etat d'un DisableGadget

Publié : ven. 05/nov./2021 16:40
par Mindphazer
C'est pas mal aussi comme idée, j'aime bien

Re: Tester etat d'un DisableGadget

Publié : ven. 05/nov./2021 23:13
par omega
Merci à vous

Les 2 solutions sont valables... Bravo !

Merci encore et bonne continuation