Code : Tout sélectionner
Enumeration
#WinInput
EndEnumeration
Enumeration
#Btn_No
#Btn_Ok
#StrInput
#TextInput
EndEnumeration
;- Types de caractères dans le champ de saisie
#PB_InputEx_Numeric = 1 ; Saisie de chiffres uniquement
#PB_InputEx_Password = 2 ; Etoiles à la place des caractères
#PB_InputEx_LowerCase = 4 ; Tout en minuscules
#PB_InputEx_UpperCase = 8 ; Tout en majuscules
;- Types de boutons possibles.
#PB_InputEx_Ok = 16 ; Bouton Valider
#PB_InputEx_Cancel = 32 ; Bouton Annuler
;- Procedure
Procedure.s InputRequester_Ex(Titre.s, MsgClient.s, MsgDefaut.s, Type.l)
If Type & #PB_InputEx_Numeric : Type1 = #PB_String_Numeric : EndIf
If Type & #PB_InputEx_Password : Type2 = #PB_String_Password : EndIf
If Type & #PB_InputEx_UpperCase And Type & #PB_InputEx_LowerCase
MessageRequester("Erreur","Le texte ne peut être à la fois majuscule et minuscule")
Type3 = #Null
ElseIf Type & #PB_InputEx_LowerCase : Type3 = #PB_String_LowerCase
ElseIf Type & #PB_InputEx_UpperCase : Type3 = #PB_String_UpperCase
EndIf
TypeString = Type1|Type2|Type3
If Type & #PB_InputEx_Ok : BtnOk = 1 : Else : BtnOk = 0 : EndIf
If Type & #PB_InputEx_Cancel : BtnNo = 1 : Else : BtnNo = 0 : EndIf
If BtnOk = 0 And BtnNo = 1
MessageRequester("Erreur","Vous ne pouvez pas avoir un bouton "+Chr(34)+"Annuler"+Chr(34)+" si vous n'avez pas le bouton "+Chr(34)+"Ok"+Chr(34))
BtnOk = 1
EndIf
If OpenWindow(#WinInput, 0,0,300,90,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,Titre)
If CreateGadgetList(WindowID(#WinInput))
TextGadget(#TextInput, 10,10,280,15,MsgClient)
StringGadget(#StrInput, 10,30,280,25,MsgDefaut,TypeString)
If BtnOk And BtnNo
ButtonGadget(#Btn_Ok, (WindowWidth()/2)-105, 60,100,25,"Valider")
ButtonGadget(#Btn_No, (WindowWidth()/2)+5, 60,100,25,"Annuler")
Else
ButtonGadget(#Btn_Ok, (WindowWidth()/2)-50, 60,100,25,"Valider")
EndIf
EndIf
EndIf
While WaitWindowEvent()
If EventGadgetID() = #Btn_Ok
ProcedureReturn(GetGadgetText(#StrInput))
CloseWindow(#WinInput)
ElseIf EventGadgetID() = #Btn_No
ProcedureReturn ""
CloseWindow(#WinInput)
EndIf
Wend
EndProcedure
Ret$ = InputRequester_Ex("Message de test", "Saisissez votre code de carte bleue", "Transfert en attente", #PB_InputEx_Cancel|#PB_InputEx_Ok)
MessageRequester("Resultat",Ret$)
