Fenêtre et gadgets
Publié : lun. 21/mars/2016 13:01
Vous savez maintenant créer une fenêtre. (Voir tutoriel http://www.purebasic.fr/french/viewtopi ... 27#p181727)
Nous allons placer maintenant quelques gadets Appelés aussi controles ou widgets dans d'autres langages.
Un gadget est un composant de l'interface graphique d'un programme : Textes, boutons, listes d'éléments, cases à cocher, boîtes à onglets, canvas, etc...
Lors de cet exercice, nous allons saisir un nom d'utilisateur et effectuer un control de validité quand on clique sur le bouton valider.
Nous allons placer maintenant quelques gadets Appelés aussi controles ou widgets dans d'autres langages.
Un gadget est un composant de l'interface graphique d'un programme : Textes, boutons, listes d'éléments, cases à cocher, boîtes à onglets, canvas, etc...
Lors de cet exercice, nous allons saisir un nom d'utilisateur et effectuer un control de validité quand on clique sur le bouton valider.
Code : Tout sélectionner
Enumeration Window
#MainForm
EndEnumeration
Enumeration Gadget
#User
#Ok
EndEnumeration
Declare Start()
Declare Valid()
Declare Exit()
Start()
Procedure Start()
;Mise en place de la fenêtre de l'application
OpenWindow(#MainForm, 0, 0, 500, 250, "Premiere feneêtre", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
;Quelques gadgets
TextGadget(#PB_Any, 10, 30, 100, 22, "Username")
StringGadget(#User, 110, 30, 270, 24, "")
ButtonGadget(#Ok, 400, 30, 80, 24, "Valider")
;Mettre le curseur dans la zone de saisie User
SetActiveGadget(#User)
;procédure à déclencher quand on clique sur le bouton Valider
BindGadgetEvent(#Ok, @Valid())
;Procédure à déclencher quand on quitte l'application
BindEvent(#PB_Event_CloseWindow, @Exit())
Repeat : WaitWindowEvent() : ForEver
EndProcedure
;Pour cet exercice on va controler qu'il y a au moins trois caractéres dans le nom de l'utilisateur
Procedure Valid()
Protected User.s = GetGadgetText(#User)
If Len(User) < 3
MessageRequester("Information", "Le nom de l'utilisateur doit comporter au moins 3 caractéres.")
SetActiveGadget(#User)
Else
MessageRequester("Information", "Le nom d'utilisateur " + User + " est correct.")
EndIf
EndProcedure
Procedure Exit()
End
EndProcedure