InputRequester Multilignes
Publié : ven. 13/mars/2026 14:57
Une petite procédure InputRequester(Title$, Message$, DefaultText$, Flags=0, ParentID=0) pour saisir des données sur plusieurs lignes ou un mot de passe sur une seule ligne.
Comment ça fonctionne ?
- Une procédure InputRequesterEx(Title$, Message$, DefaultText$, Flags=0, ParentID=0)
- Une suite de macro (KCC il ne s'agit pas de maquereaux
) pour overrider la fonction InputRequesterEx()
Exemple :
Le code complet avec la zone de test.
Comment ça fonctionne ?
- Une procédure InputRequesterEx(Title$, Message$, DefaultText$, Flags=0, ParentID=0)
- Une suite de macro (KCC il ne s'agit pas de maquereaux
Code : Tout sélectionner
Define text$
text$ = InputRequester("ImputRequester multilignes", "Entrez votre texte sur plusieurs lignes :", "")
Debug text$
Code : Tout sélectionner
; InputRequester Multi-lignes
;
; -Création de la fonction InputRequesterEx(Title$, Message$, DefaultText$, Flags=0, ParentID=0)
; -Override de la fonction InputRequesterEx() -> InputRequester()
; Macro pour override InputRequesterEx
Macro InputRequester(Title, Message, Default)
InputRequesterEx(Title, Message, Default, 0, 0)
EndMacro
Macro InputRequester2(Title, Message, Default, Flags)
InputRequesterEx(Title, Message, Default, Flags, 0)
EndMacro
Macro InputRequester3(Title, Message, Default, Flags, ParentID)
InputRequesterEx(Title, Message, Default, Flags, ParentID)
EndMacro
; InputRequester extend
Procedure.s InputRequesterEx(Title$, Message$, DefaultText$, Flags=0, ParentID=0)
Protected win, gadget, ok, cancel, result$
Protected width = 420
Protected height
If Flags & #PB_InputRequester_Password
height = 130
Else
height = 260
EndIf
If ParentID
DisableWindow(ParentID, 1)
EndIf
win = OpenWindow(#PB_Any, 0, 0, width, height, Title$,
#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TextGadget(#PB_Any, 10, 10, width-20, 20, Message$)
If Flags & #PB_InputRequester_Password
gadget = StringGadget(#PB_Any, 10, 35, width-20, 25, DefaultText$, #PB_String_Password)
Else
gadget = EditorGadget(#PB_Any, 10, 35, width-20, 170)
SetGadgetText(gadget, DefaultText$)
EndIf
ok = ButtonGadget(#PB_Any, width-190, height-40, 80, 25, "OK")
cancel = ButtonGadget(#PB_Any, width-100, height-40, 80, 25, "Annuler")
SetActiveGadget(gadget)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case ok
result$ = GetGadgetText(gadget)
Break
Case cancel
result$ = ""
Break
EndSelect
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
CloseWindow(win)
If ParentID
DisableWindow(ParentID, 0)
EndIf
ProcedureReturn result$
EndProcedure
;-
;- ZONE DE TEST
Define text$
text$ = InputRequester("ImputRequester multilignes", "Entrez votre texte sur plusieurs lignes :", "")
Debug text$