Bonjour et bienvenue.
Une procédure pour ça ne te servira pas à grand chose.
Mais voilà pour te guider.
Les évènements
#BT1 à #BT3 sont les commandes sans procédure, on a donc une répétition du code pour le second MessageRequester()
La procédure
Message(message.s) créée en début de code permet d'éviter ces répétition (de
#BT4 à #BT5)
Code : Tout sélectionner
Enumeration
#FENETRE
EndEnumeration
Enumeration 1 ; On commence à donner la valeur 1 aux 1er bouton
#BT1
#BT2
#BT3
#BT4
#BT5
#BTExit
EndEnumeration
; Ici la procédure qui servira à afficher 1 message personnalisé et un autre fixe
Procedure Message(message.s)
MessageRequester("Info",message.s + ". Bouton " + Str(GetActiveGadget() ))
MessageRequester("Info"," Voilà voilà")
ProcedureReturn GetActiveGadget()
EndProcedure
; Création de la fenêtre
OpenWindow(#FENETRE,0,0,204,100,"Titre")
; Création des boutons avec une boucle
LargeurBouton = 40
Position = 0
For i = #BT1 To #BT5
ButtonGadget (i, position, 20, LargeurBouton, 20, "BT "+Str(i))
position + LargeurBouton+1
Next
ButtonGadget (#BTExit, 0, 50, LargeurBouton, 20, "Quitter")
; Boucle des évènements
Repeat
Select WaitWindowEvent()
; Gestion des évènements des gadgets
Case #PB_Event_Gadget
Select EventGadget()
Case #BT1
MessageRequester("Info"," je suis le bouton "+Str(GetActiveGadget()))
MessageRequester("Info"," Voilà voilà")
Case #BT2
MessageRequester("Info"," je suis le bouton "+Str(GetActiveGadget()))
MessageRequester("Info"," Voilà voilà")
Case #BT3
MessageRequester("Info"," je suis le bouton "+Str(GetActiveGadget()))
MessageRequester("Info"," Voilà voilà")
Case #BT4
Message("Un autre message via procédure")
Case #BT5
Message("La même procédure, pas le même message")
Case #BTExit
Quite = 1
EndSelect
; Gestion des évènements lors de la fermeture
Case #PB_Event_CloseWindow
Select EventWindow()
Case #FENETRE
quite=1
EndSelect
EndSelect
Until quite=1
; C'est la fin
End
La notice est bien complète et les exemples ne manquent pas sur le forum.
Il y a aussi de nombreux tutos ici :
http://www.purebasic.fr/french/viewtopi ... =21&t=6664