Page 1 sur 1
Suppression de l'option #PB_String_ReadOnly sur StringGadet
Publié : mer. 23/oct./2019 16:29
par Ulix
Bonjour a tous
Pour un formulaire de saisie, j'utilise des StringGadgets avec l'option #PB_String_ReadOnly.
Donc pas de modification intempestif !
Toutefois pour autoriser la saisie il me faut passe les StringGadget en mode normale...
D’où ma question : Comment supprimer l'option : #PB_String_ReadOnly.
Sur le coup, j'ai penser a utilisé : SetGadgetAttribute(#Gadget, Attribut, Valeur),
mais cette commande ne permet pas de repasser le StrinGadget en mode édition !
Merci de votre aide.
Re: Supprésion de l'option #PB_String_ReadOnly sur StringGa
Publié : mer. 23/oct./2019 16:34
par Ollivier
Tu crées 2 gadgets strictement identiques, à l'exception de cette option "read only", et tu "swapes" de l'un à l'autre (avec 2 HideGadget) avec une synchro du contenu. C'est la soluce fiable et cross plateforme qui me vient en tête en te lisant. Mais ça n'empêche pas une solution plus simple que je ne connaitrais pas...
Re: Supprésion de l'option #PB_String_ReadOnly sur StringGa
Publié : mer. 23/oct./2019 16:50
par Marc56
Tu peux aussi supprimer le gadget et le créer à nouveau (y compris avec le même ID)
Avec
FreeGadget()
Code : Tout sélectionner
OpenWindow(0, 0, 0, 322, 205, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StringGadget(1, 8, 60, 306, 20, "Gadget saisie de texte", #PB_String_ReadOnly)
ButtonGadget(2, 10, 10, 306, 30, "Changer mode édition")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadget()
Case 2
FreeGadget(1)
StringGadget(1, 8, 60, 306, 20, "Gadget saisie de texte")
SetGadgetColor(1, #PB_Gadget_BackColor, #Yellow)
SetActiveGadget(1)
EndSelect
EndSelect
ForEver
Ce qui permet aussi de changer le texte et la couleur.
Et avec SetActiveGadget, tu replaces le curseur dessus.

Re: Supprésion de l'option #PB_String_ReadOnly sur StringGa
Publié : mer. 23/oct./2019 17:29
par Ulix
Merci pour vos idées.
J'ai trouvé un post :
http://forums.purebasic.com/english/vie ... c0858e4e97
qui propose quelques autres pistes :
DisableGadget() et aussi SetActiveGadget(-1)
Je vais voir ce qui ira le mieux!
Merci a tous
Re: Supprésion de l'option #PB_String_ReadOnly sur StringGa
Publié : mer. 23/oct./2019 18:07
par Christophe
Une solution avec API
Code : Tout sélectionner
OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
StringGadget(1,10,50,480,20,"",#PB_String_ReadOnly)
ButtonGadget(2,100,100,100,50,"Sans ReadOnly")
ButtonGadget(3,300,100,100,50,"Avec ReadOnly")
TextGadget(4,10,30,100,20,"Avec ReadOnly")
Repeat
e = WaitWindowEvent()
Select e
Case #PB_Event_Gadget
Select EventGadget()
Case 2
SendMessage_(GadgetID(1),#EM_SETREADONLY,0,0)
SetGadgetText(4,"Sans ReadOnly")
Case 3
SendMessage_(GadgetID(1),#EM_SETREADONLY,1,0)
SetGadgetText(4,"Avec ReadOnly")
EndSelect
EndSelect
Until e = #PB_Event_CloseWindow
Re: Supprésion de l'option #PB_String_ReadOnly sur StringGa
Publié : mer. 23/oct./2019 20:20
par Ollivier
Euh... Je crois que les API c'est pour Linux, avec Ulix !