Placeholder dans stringgadget (texte grisé par defaut)

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Placeholder dans stringgadget (texte grisé par defaut)

Message par Ar-S »

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 :mrgreen: .

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
EnJoYeZ
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: Placeholder dans stringgadget (texte grisé par defaut)

Message par Marc56 »

Moderne, plus visuel qu'un GadgetToolTip(), compatible tous OS, simple, intéressant, je garde de côté :D
Merci Ar-S
Shadow
Messages : 1413
Inscription : mer. 04/nov./2015 17:39

Re: Placeholder dans stringgadget (texte grisé par defaut)

Message par Shadow »

Sympa, merci du partage c'est cool.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.

PureBasic: 5.60 x64 Bits.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Placeholder dans stringgadget (texte grisé par defaut)

Message par Kwai chang caine »

Super idée 8O 8)
Fallait y penser :wink:
Hop dans la hotte...ça pourra me servir, merci pour le partage 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre