Code : Tout sélectionner
XIncludeFile "Bouton maison.pbi"
Enumeration
#Fenetre_principale
#Fenetre_apercu
EndEnumeration
Enumeration
#Texte_ChoisirIcone
#Texte_Nbre_Boutons
#Option_1_bouton
#Option_2_boutons
#Option_3_boutons
#Texte_Option_1_bouton
#Texte_Option_2_boutons
#Texte_Option_3_boutons
#Bouton_1_btn
#Bouton_2_btn
#Bouton_3_btn
#Texte_des_boutons
#Texte_Bouton_1
#ComboBox_1
#Texte_bouton_2
#Texte_bouton_3
#ComboBox_2
#ComboBox_3
#Option_son
#Texte_titre_message
#Chaine_message
#Texte_EntrerMessage
#Bouton_sans_icone
#Editor_message
#Bouton_Apercu
#Bouton_Valider
#Bouton_Quitter
#Frame3D_Boutons
#Frame3D_Icones
#ButtonImage_1_btn
#ButtonImage_2_btn
#ButtonImage_3_btn
#Bouton_Info
#Bouton_Question
#Bouton_Attention
#Bouton_Erreur
#Image
#Image_1
#Image_2
#Image_3
#Image_4
#Fichier
EndEnumeration
;- Image Plugins
UsePNGImageDecoder()
Global.i Image1, Image2, Image3, Image4 ; Icônes sur nos boutons
Global.i NbreBoutons ; Nombre de boutons du requester
Global.i ValeurCombo1, ValeurCombo2, ValeurCombo3 ;Valeur renvoyée par chaque combo
Global.i Image; Id de l'icône du requester
Global.s Elements ; Eléments de la liste de chaque combo
Global.s Resultat1, Resultat2, Resultat3 ; texte renvoyé par les combos
Global Icone$ ; Icône affichée dans le requester
Global.s FichierSource = #PB_Compiler_FilePath + "Requester perso.pb"
;- Catch Images
Image1 = CatchImage(#Image_1, ?Image1); Icône Info
Image2 = CatchImage(#Image_2, ?Image2); Icône Question
Image3 = CatchImage(#Image_3, ?Image3); Icône Attention
Image4 = CatchImage(#Image_4, ?Image4); Icône Erreur
;- Images
DataSection
Image1:
IncludeBinary "icônes\information 3.png"
Image2:
IncludeBinary "icônes\question 3.png"
Image3:
IncludeBinary "icônes\attention 3.png"
Image4:
IncludeBinary "icônes\erreur 3.png"
ImageSon:
IncludeBinary "icônes\son.ico"
EndDataSection
Procedure Apercu()
Protected.i Bouton1=1, Bouton2=2, Bouton3=3, Icone=4, Texte=5
OpenWindow(#Fenetre_apercu, 0, 0, 300, 150, GetGadgetText(#Chaine_message),#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If Resultat1 ; texte renvoyé par le combo1
Init_BoutonPerso(1, 75, 30, GetWindowColor(#Fenetre_apercu), $FFFFFF, $E60B00, $FFFFFF, $E60B00, 0, 1)
CreerBouton(Bouton1, #Fenetre_apercu, Resultat1, 20, WindowHeight(#Fenetre_apercu)-50, 0)
EndIf
If Resultat2 ; texte renvoyé par le combo2
Init_BoutonPerso(1, 75, 30, GetWindowColor(#Fenetre_apercu), $FFFFFF, $1C00FF, $FFFFFF, $1C00FF, 0, 1)
CreerBouton(Bouton2, #Fenetre_apercu, Resultat2, 115, WindowHeight(#Fenetre_apercu)-50, 0)
EndIf
If Resultat3 ; texte renvoyé par le combo3
Init_BoutonPerso(1, 75, 30, GetWindowColor(#Fenetre_principale), $FFFFFF, $019B24, $FFFFFF, $019B24, 0, 1)
CreerBouton(Bouton3, #Fenetre_apercu, Resultat3, 210, WindowHeight(#Fenetre_apercu)-50, 0)
EndIf
If Image
ImageGadget(Icone, 5,5,40,40, Image); Icône du requester
EndIf
Texte$ = GetGadgetText(#Editor_message); Texte du requester
TextGadget(Texte, 60, 20, 200, 80, Texte$)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case Bouton1
Debug ValeurCombo1
Case Bouton2
Debug ValeurCombo2
Case Bouton3
Debug ValeurCombo3
EndSelect
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Fenetre_apercu
CloseWindow(#Fenetre_apercu)
Break
EndSelect
EndSelect
VerifierSurvolBouton(#Fenetre_apercu)
ForEver
EndProcedure
Procedure CreerCode()
If FileSize(FichierSource)
DeleteFile(FichierSource)
CreateFile(#Fichier, FichierSource)
OpenFile(#Fichier, FichierSource)
WriteStringN(#Fichier, "XIncludeFile "+Chr(34)+"Bouton maison.pbi"+Chr(34))
WriteStringN(#Fichier, "Enumeration")
WriteStringN(#Fichier, " #Fenetre_principale")
WriteStringN(#Fichier, " #Titre")
WriteStringN(#Fichier, " #Icone")
WriteStringN(#Fichier, " #message")
WriteStringN(#Fichier, " #Bouton1")
WriteStringN(#Fichier, " #Bouton2")
WriteStringN(#Fichier, " #Bouton3")
WriteStringN(#Fichier, "EndEnumeration")
WriteStringN(#Fichier, "")
WriteStringN(#Fichier, ";- Image Plugins")
WriteStringN(#Fichier, "UsePNGImageDecoder()")
WriteStringN(#Fichier, "")
WriteStringN(#Fichier, "Global.i NbreBoutons ; Nombre de boutons du requester")
WriteStringN(#Fichier, "Global.i Image; Id de l'icone du requester")
WriteStringN(#Fichier, "Global Icone$ ; Icone affichee dans le requester")
WriteStringN(#Fichier, "")
WriteStringN(#Fichier, "Procedure RequesterPerso()")
WriteStringN(#Fichier, " Protected.i Bouton1=1, Bouton2=2, Bouton3=3, Icone=4, Texte=5")
WriteStringN(#Fichier, "")
WriteStringN(#Fichier, " OpenWindow(#Fenetre_principale, 0, 0, 300, 150, "+Chr(34)+GetGadgetText(#Chaine_message)+Chr(34)+",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)")
WriteStringN(#Fichier, "")
If NbreBoutons = 1 Or NbreBoutons = 2 Or NbreBoutons = 3
WriteStringN(#Fichier, " Init_BoutonPerso(1, 75, 30, GetWindowColor(#Fenetre_principale), $FFFFFF, $E60B00, $FFFFFF, $E60B00, 0, 1)")
WriteStringN(#Fichier, " CreerBouton(Bouton1, #Fenetre_principale, "+Chr(34)+Resultat1+Chr(34)+", 20, WindowHeight(#Fenetre_principale)-50, 0)")
WriteStringN(#Fichier, "")
EndIf
If NbreBoutons = 2 Or NbreBoutons =3
WriteStringN(#Fichier, " Init_BoutonPerso(1, 75, 30, GetWindowColor(#Fenetre_principale), $FFFFFF, $1C00FF, $FFFFFF, $1C00FF, 0, 1)")
WriteStringN(#Fichier, " CreerBouton(Bouton2, #Fenetre_principale, "+Chr(34)+Resultat2+Chr(34)+", 115, WindowHeight(#Fenetre_principale)-50, 0)")
WriteStringN(#Fichier, "")
EndIf
If NbreBoutons = 3
WriteStringN(#Fichier, " Init_BoutonPerso(1, 75, 30, GetWindowColor(#Fenetre_principale), $FFFFFF, $019B24, $FFFFFF, $019B24, 0, 1)")
WriteStringN(#Fichier, " CreerBouton(Bouton3, #Fenetre_principale, "+Chr(34)+Resultat3+Chr(34)+", 210, WindowHeight(#Fenetre_principale)-50, 0)")
WriteStringN(#Fichier, "")
EndIf
WriteStringN(#Fichier, " ImageGadget("+Str(Icone)+", 5,5,40,40, "+Str(Image)+"); Icone du requester")
WriteStringN(#Fichier, "")
WriteStringN(#Fichier, " TextGadget(Texte, 60, 20, 200, 80, "+Chr(34)+GetGadgetText(#Editor_message)+Chr(34)+")")
WriteStringN(#Fichier, "")
WriteStringN(#Fichier, " Repeat")
WriteStringN(#Fichier, " Select WaitWindowEvent()")
WriteStringN(#Fichier, " Case #PB_Event_Gadget")
WriteStringN(#Fichier, " Select EventGadget()")
WriteStringN(#Fichier, " Case Bouton1")
WriteStringN(#Fichier, " Debug "+Str(ValeurCombo1))
WriteStringN(#Fichier, " Case Bouton2")
WriteStringN(#Fichier, " Debug "+Str(ValeurCombo2))
WriteStringN(#Fichier, " Case Bouton3")
WriteStringN(#Fichier, " Debug "+Str(ValeurCombo3))
WriteStringN(#Fichier, " EndSelect")
WriteStringN(#Fichier, " Case #PB_Event_CloseWindow")
WriteStringN(#Fichier, " Select EventWindow()")
WriteStringN(#Fichier, " Case #Fenetre_principale")
WriteStringN(#Fichier, " CloseWindow(#Fenetre_principale)")
WriteStringN(#Fichier, " Break")
WriteStringN(#Fichier, " EndSelect")
WriteStringN(#Fichier, " EndSelect")
WriteStringN(#Fichier, " VerifierSurvolBouton(#Fenetre_principale)")
WriteStringN(#Fichier, " ForEver")
WriteStringN(#Fichier, "EndProcedure")
WriteStringN(#Fichier, "")
WriteStringN(#Fichier, "RequesterPerso()")
WriteStringN(#Fichier, "")
WriteStringN(#Fichier, "; IDE Options = PureBasic 4.61 (Windows - x64)")
WriteStringN(#Fichier, "; CursorPosition = 1")
WriteStringN(#Fichier, "; FirstLine = 1")
WriteStringN(#Fichier, "; Folding = -")
WriteStringN(#Fichier, "; EnableUnicode")
WriteStringN(#Fichier, "; EnableThread")
WriteStringN(#Fichier, "; EnableOnError")
WriteStringN(#Fichier, "; CompileSourceDirectory")
WriteStringN(#Fichier, "; Compiler = PureBasic 4.61 (Windows - x86)")
WriteStringN(#Fichier, "; EnablePurifier")
CloseFile(#Fichier)
EndIf
;CallDebugger
EndProcedure
Procedure Ouvrir_Fenetre_principale()
If OpenWindow(#Fenetre_principale, 476, 65, 400, 599, "Programme de création de message requester", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
DefinirPoliceBouton("Microsoft Sans Serif", 8)
;On crée notre zone pour choisir une icône
Frame3DGadget(#Frame3D_Icones, 15, 5, 235, 285, "")
TextGadget(#Texte_ChoisirIcone, 70, 15, 125, 15, "Veuillez choisir une icône")
Init_BoutonPerso(1, 150, 40, GetWindowColor(#Fenetre_principale), $FFFFFF, $F5C8C8, $000000, $FFFFFF, 0, 2)
ResizeImage(#Image_1, 20, 20)
CreerBoutonH(#Bouton_Info, #Fenetre_principale, "Icône Info", 55, 40, #Image_1)
ResizeImage(#Image_2, 20, 20)
CreerBoutonH(#Bouton_Question, #Fenetre_principale, "Icône Question", 55, 90, #Image_2)
ResizeImage(#Image_3, 20, 20)
CreerBoutonH(#Bouton_Attention, #Fenetre_principale, "Icône Attention", 55, 140, #Image_3)
ResizeImage(#Image_4, 20, 20)
CreerBoutonH(#Bouton_Erreur, #Fenetre_principale, "Icône Erreur", 55, 190, #Image_4)
;On définit si on veut une icône
Init_BoutonPerso(1, 165, 30, GetWindowColor(#Fenetre_principale), $FFFFFF, $F5C8C8, $000000, $FFFFFF, 0, 2)
CreerBouton(#Bouton_sans_icone, #Fenetre_principale, "Ne pas mettre d'icône", 30, 255, 0)
;On choisit si on veut du son
OptionGadget(#Option_son, 206, 264, 35, 15, "son")
;On crée une zone por définir le nombres de boutons dans notre requester
Frame3DGadget(#Frame3D_Boutons, 260, 5, 120, 285, "")
TextGadget(#Texte_Nbre_Boutons, 273, 15, 95, 15, "Nombre de boutons")
OptionGadget(#Option_1_bouton, 275, 50, 15, 15, "")
OptionGadget(#Option_2_boutons, 275, 70, 15, 15, "")
OptionGadget(#Option_3_boutons, 275, 90, 15, 15, "")
TextGadget(#Texte_Option_1_bouton, 290, 50, 50, 15, "1 bouton")
TextGadget(#Texte_Option_2_boutons, 290, 70, 50, 15 , "2 boutons")
TextGadget(#Texte_Option_3_boutons, 290, 90, 50, 15, "3 boutons")
Init_BoutonPerso(1, 15, 15, GetWindowColor(#Fenetre_principale), $E60B00, $E60B00, $E60B00, $E60B00, 0, 2)
DefinirPoliceBouton("Microsoft Sans Serif", 8)
CreerBouton(#Bouton_1_btn, #Fenetre_principale, "", 350, 50, 0)
Init_BoutonPerso(1, 15, 15, GetWindowColor(#Fenetre_principale), $1C00FF, $1C00FF, $1C00FF, $1C00FF, 0, 2)
CreerBouton(#Bouton_2_btn, #Fenetre_principale, "", 350, 70, 0)
Init_BoutonPerso(1, 15, 15, GetWindowColor(#Fenetre_principale), $019B24, $019B24, $019B24, $019B24, 0, 2)
CreerBouton(#Bouton_3_btn, #Fenetre_principale, "", 350, 90, 0)
TextGadget(#Texte_des_boutons, 274, 115, 90, 15, "Texte des boutons")
TextGadget(#Texte_Bouton_1, 275, 145, 100, 15, "Texte du bouton 1 :")
TextGadget(#Texte_bouton_2, 275, 185, 100, 15, "Texte du bouton 2")
TextGadget(#Texte_bouton_3, 275, 230, 100, 15, "Texte du bouton 3")
;On crée une liste les légendes pour les boutons du requester
Elements = "Ok|Oui|Non|Annuler|Abandonner|Recommencer|Continuer|Ignorer|Choisir|Valider|Quitter"
;On crée le combo 1
ComboBoxGadget(#ComboBox_1, 275, 160, 100, 20)
Compteur = CountString(Elements, "|")+1
For i = 1 To compteur
AddGadgetItem(#ComboBox_1, -1, StringField(Elements, i, "|"))
Next
DisableGadget(#ComboBox_1, 1)
;puis le combo 2
ComboBoxGadget(#ComboBox_2, 275, 205, 100, 20)
For i = 1 To Compteur
AddGadgetItem(#ComboBox_2, -1, StringField(Elements, i, "|"))
Next
DisableGadget(#ComboBox_2, 1)
;et enfin le combo 3
ComboBoxGadget(#ComboBox_3, 275, 250, 100, 20)
For i = 1 To Compteur
AddGadgetItem(#ComboBox_3, -1, StringField(Elements, i, "|"))
Next
DisableGadget(#ComboBox_3, 1)
TextGadget(#Texte_titre_message, 25, 300, 350, 15, "Veuillez entrer le titre de votre message", #PB_Text_Center)
StringGadget(#Chaine_message, 20, 320, 360, 20, "") ;Titre du Requester
TextGadget(#Texte_EntrerMessage, 25, 345, 350, 15, "Veuillez entrer votre message", #PB_Text_Center)
EditorGadget(#Editor_message, 20, 365, 360, 160) ; Texte du requester
;On crée nos boutons
Init_BoutonPerso(1, 115, 40, GetWindowColor(#Fenetre_principale), $FFFFFF, $F5C8C8, $000000, $FFFFFF, 0, 2)
CreerBouton(#Bouton_Apercu, #Fenetre_principale, "Aperçu", 20, 550, 0)
CreerBouton(#Bouton_Valider, #Fenetre_principale, "Valider", 143, 550, 0)
CreerBouton(#Bouton_Quitter, #Fenetre_principale, "Quitter", 269, 550, 0)
EndIf
EndProcedure
Ouvrir_Fenetre_principale()
;- Boucle d'événements
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #Option_1_bouton
SetGadgetColor(#Texte_Option_1_bouton, #PB_Gadget_FrontColor, $E7A600)
SetGadgetColor(#Texte_Option_2_boutons, #PB_Gadget_FrontColor, #Black)
SetGadgetColor(#Texte_Option_3_boutons, #PB_Gadget_FrontColor, #Black)
DisableGadget(#ComboBox_1, 0)
DisableGadget(#ComboBox_2, 1)
DisableGadget(#ComboBox_3, 1)
NbreBoutons = 1
Case #Option_2_boutons
SetGadgetColor(#Texte_Option_1_bouton, #PB_Gadget_FrontColor, #Black)
SetGadgetColor(#Texte_Option_2_boutons, #PB_Gadget_FrontColor, $E7A600)
SetGadgetColor(#Texte_Option_3_boutons, #PB_Gadget_FrontColor, #Black)
DisableGadget(#ComboBox_1, 0)
DisableGadget(#ComboBox_2, 0)
DisableGadget(#ComboBox_3, 1)
NbreBoutons = 2
Case #Option_3_boutons
SetGadgetColor(#Texte_Option_1_bouton, #PB_Gadget_FrontColor, #Black)
SetGadgetColor(#Texte_Option_2_boutons, #PB_Gadget_FrontColor, #Black)
SetGadgetColor(#Texte_Option_3_boutons, #PB_Gadget_FrontColor, $E7A600)
DisableGadget(#ComboBox_1, 0)
DisableGadget(#ComboBox_2, 0)
DisableGadget(#ComboBox_3, 0)
NbreBoutons = 3
Case #ComboBox_1
Resultat1 = GetGadgetItemText(#ComboBox_1, GetGadgetState(#ComboBox_1)) ; texte renvoyé par le combo
ValeurCombo1 = GetGadgetState(#ComboBox_1)
Case #ComboBox_2
Resultat2 = GetGadgetItemText(#ComboBox_2, GetGadgetState(#ComboBox_2))
ValeurCombo2 = GetGadgetState(#ComboBox_2)
Case #ComboBox_3
Resultat3 = GetGadgetItemText(#ComboBox_3, GetGadgetState(#ComboBox_3))
ValeurCombo1 = GetGadgetState(#ComboBox_3)
Case #Option_son
Case #Chaine_message
Case #Bouton_sans_icone
Case #Editor_message
Case #Bouton_Apercu
Apercu()
Case #Bouton_Valider
CreerCode()
Case #Bouton_Quitter
CloseWindow(#Fenetre_principale)
End
Case #Bouton_Info
IconeParDefaut$ = #PB_Compiler_FilePath+"Icônes\Info*.png"
Filtre$ = "Icône Info*.png|Info*.png|Exclamination.png|Exclamination*.png"
Filtre = 0
Icone$ = OpenFileRequester("Choisissez une icône à charger", IconeParDefaut$, Filtre$, Filtre)
If Icone$
LoadImage(#Image, Icone$)
Image = ImageID(#Image)
Else
MessageRequester("Information", "La sélection a été annulée.", 0)
EndIf
SetGadgetText(#Chaine_message, "Information...")
Case #Bouton_Question
IconeParDefaut$ = #PB_Compiler_FilePath+"Icônes\Question*.png"
Filtre$ = "Icône Question*.png|Question*.png|Aide.png|Aide*.Png"
Icone$ = OpenFileRequester("Choisissez une icône à charger", IconeParDefaut$, Filtre$, 0)
If Icone$
LoadImage(#Image, Icone$)
Image = ImageID(#Image)
Else
MessageRequester("Information", "La sélection a été annulée.", 0)
EndIf
SetGadgetText(#Chaine_message, "Question...")
Case #Bouton_Attention
IconeParDefaut$ = #PB_Compiler_FilePath+"Icônes\Attention*.png"
Filtre$ = "Icône Attention*.png|Attention*.png"
Icone$ = OpenFileRequester("Choisissez une icône à charger", IconeParDefaut$, Filtre$, 0)
If Icone$
LoadImage(#Image, Icone$)
Image = ImageID(#Image)
Else
MessageRequester("Information", "La sélection a été annulée.", 0)
EndIf
SetGadgetText(#Chaine_message, "Attention...")
Case #Bouton_Erreur
IconeParDefaut$ = #PB_Compiler_FilePath+"Icônes\Erreur*.png"
Filtre$ = "Icône Erreur*.png|Erreur*.png"
Icone$ = OpenFileRequester("Choisissez une icône à charger", IconeParDefaut$, Filtre$, 0)
If Icone$
LoadImage(#Image, Icone$)
Image = ImageID(#Image)
Else
MessageRequester("Information", "La sélection a été annulée.", 0)
EndIf
SetGadgetText(#Chaine_message, "Erreur...")
EndSelect
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Fenetre_principale
CloseWindow(#Fenetre_principale)
Break
EndSelect
EndSelect
VerifierSurvolBouton(#Fenetre_principale)
ForEver
Merci à tous.