Partagez votre expérience de PureBasic avec les autres utilisateurs.
Progi1984
Messages : 2659 Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :
Message
par Progi1984 » mar. 17/févr./2009 22:46
Code : Tout sélectionner
ProcedureDLL GetDisableGadget(Gadget.l)
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Linux;{
Protected *Widget.GtkWidget = GadgetID(Gadget)
Protected *Object.GtkObject = *Widget\object
If *Object\flags & #GTK_SENSITIVE <> 0
ProcedureReturn #False
Else
ProcedureReturn #True
EndIf
;}
CompilerCase #PB_OS_Windows;{
ProcedureReturn #True-IsWindowEnabled_(GadgetID(gadget))
;}
CompilerEndSelect
EndProcedure
If OpenWindow(0, 0, 0, 250, 105, "DisableGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(0, 10, 15, 230, 30, "Bouton désactivé") : DisableGadget(0, 1)
ButtonGadget(1, 10, 60, 230, 30, "Bouton activé") : DisableGadget(1, 0)
Debug GetDisableGadget(0)
Debug GetDisableGadget(1)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Manque plus que MacOS
Ar-S
Messages : 9539 Inscription : dim. 09/oct./2005 16:51
Contact :
Message
par Ar-S » mar. 17/févr./2009 22:53
C'est quoi la différence avec un getgadgetstate ?
Progi1984
Messages : 2659 Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :
Message
par Progi1984 » mar. 17/févr./2009 23:42
Pour MacOS, Possibilité de tester avec ca ?
Code : Tout sélectionner
CompilerCase #PB_OS_MacOs;{
ProcedureReturn #True-IsControlEnabled_(GadgetID(gadget))
;}
La différence avec un getgadgetstate est que l'on saura si le gadget est ou non désactivé. Par exemple, dans le cadre d'un bouton, cela renvoie ces ifnormations :
Code : Tout sélectionner
- ButtonGadget(): renvoie l'état d'un bouton poussoir (#PB_Button_Toggle): 1 = pressé, 0 = normal.
Kwai chang caine
Messages : 6989 Inscription : sam. 23/sept./2006 18:32
Localisation : Isere
Message
par Kwai chang caine » ven. 20/févr./2009 18:54
Merci Progi1984
Autrement j'avais le meme style de code de FLYPE, mais avec des macros, si ça peut compléter ce POST
http://www.purebasic.fr/french/viewtopi ... 7535#47535
Code : Tout sélectionner
Macro GetDisableGadget(gadget)
(#True-IsWindowEnabled_(GadgetID(gadget)))
EndMacro
If OpenWindow(0, 0, 0, 250, 105, "DisableGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(0, 10, 15, 230, 30, "Bouton désactivé") : DisableGadget(0, 1)
ButtonGadget(1, 10, 60, 230, 30, "Bouton activé") : DisableGadget(1, 0)
Debug GetDisableGadget(0)
Debug GetDisableGadget(1)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf