Fenêtre et gadgets

Informations pour bien débuter en PureBasic
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Fenêtre et gadgets

Message par falsam »

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.

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
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Fenêtre et gadgets

Message par falsam »

Le même code sans les déclencheurs BindEvent() et BindGadgetEvent()

Code : Tout sélectionner

Enumeration Window
  #MainForm
EndEnumeration

Enumeration Gadget
  #User
  #Ok
EndEnumeration

;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)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget       ;Un événement c'est produit sur un gadget
      Select EventGadget()      ;Quel est le gadget qui à provoqué cet événement
        Case #Ok
          ;Pour cet exercice on va controler qu'il y a au moins trois caractéres dans le nom de l'utilisateur
          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 
          
      EndSelect
      
    Case #PB_Event_CloseWindow 
      End
      
  EndSelect
ForEver
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre