Placeholder dans stringgadget (texte grisé par defaut)
Publié : mar. 24/mai/2022 17:44
Salut,
Comme je m'amuse avec sqlite en ce moment, j'ai un petit formulaire.
J'ai voulu faire comme en html, à savoir avoir inscrire un texte grisé dans un champ jusqu'à ce que l'utilisateur clique dedans, un placeholder
.
C'est assez simple mais je trouve que cela embelli les formulaires. Si ça peu vous servir.
(Activez le DPI et décochez 'activer le support des themes pour XP' ça fait plus jolie)
EnJoYeZ
Comme je m'amuse avec sqlite en ce moment, j'ai un petit formulaire.
J'ai voulu faire comme en html, à savoir avoir inscrire un texte grisé dans un champ jusqu'à ce que l'utilisateur clique dedans, un placeholder

C'est assez simple mais je trouve que cela embelli les formulaires. Si ça peu vous servir.
(Activez le DPI et décochez 'activer le support des themes pour XP' ça fait plus jolie)
Code : Tout sélectionner
Enumeration
#win
#PRENOM
#NOM
#EMAIL
#BT_AJOUTER
EndEnumeration
Procedure Placeholder(Gadget,mot$)
;Ar-S
If EventType() = #PB_EventType_Focus And GetGadgetText(Gadget) = mot$
SetGadgetText(Gadget,"")
SetGadgetColor(Gadget,#PB_Gadget_FrontColor,$0)
ElseIf EventType() = #PB_EventType_LostFocus And GetGadgetText(Gadget) = ""
SetGadgetColor(Gadget,#PB_Gadget_FrontColor,$AAAAAA)
SetGadgetText(Gadget, mot$)
EndIf
EndProcedure
If OpenWindow(#WIN, 0, 0, 470, 180, "PlaceHolder Demo", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StringGadget(#PRENOM, 55, 65, 90,20,"Prénom")
SetGadgetColor(#Prenom,#PB_Gadget_FrontColor,$AAAAAA)
StringGadget(#NOM, 193, 65, 90,20,"Nom")
SetGadgetColor(#NOM,#PB_Gadget_FrontColor,$AAAAAA)
StringGadget(#EMAIL, 333, 65, 130,20,"E-mail")
SetGadgetColor(#EMAIL,#PB_Gadget_FrontColor,$AAAAAA)
ButtonGadget(#BT_AJOUTER,2,100,WindowWidth(#win)-4,28,"Cliquer ici pour ajouter un contact")
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #PRENOM
Placeholder(#PRENOM,"Prénom")
Case #NOM
Placeholder(#NOM,"Nom")
Case #EMAIL
Placeholder(#EMAIL,"E-mail")
Case #BT_AJOUTER
PRENOM$ = GetGadgetText(#PRENOM)
NOM$ = GetGadgetText(#NOM)
EMAIL$ = GetGadgetText(#EMAIL)
; Test pour savoir si un champ est vide ou pas. Il faut prendre en compte nos mots clés des PlaceHolder.
If PRENOM$ = "" Or PRENOM$ = "prenom" Or NOM$ = "" Or NOM$ = "Nom" Or EMAIL$ = "" Or EMAIL$ ="E-mail"
Debug "on est pas bon !"
Else
Debug "on est bon !"
EndIf
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf