Code : Tout sélectionner
Procedure OpenDialog(id, Dialog_Larg, Dialog_Haut, Dialog_Texte.s, Window_Main, Dialog_Option)
Protected Valeur.l
Valeur.l=OpenWindow(id,0,0,Dialog_Larg,Dialog_Haut,Dialog_Texte,Dialog_Option,WindowID(Window_Main))
If id=#PB_Any
id=Valeur
EndIf
DisableWindow(Window_Main,1)
ProcedureReturn Valeur
EndProcedure
Procedure CloseDialog(Window_Dialog.l,Window_Main.l)
DisableWindow(Window_Main,0)
SetActiveWindow_(Window_Main)
CloseWindow(Window_Dialog)
EndProcedure
Code : Tout sélectionner
;-------------------------------------------------------------------------------------------------------
; La procédure Dialog à sa propre boucle d'évènement,
; comme ça elle est complètement indépendante du code principale
; et reste plus facile à corriger
Procedure.s DialogMotdePasse()
Protected Window.l
Window=GetActiveWindow()
Enumeration 100
#Dialog
EndEnumeration
Enumeration 100
#Dialog_Text
#Dialog_String
#Dialog_Button
EndEnumeration
OpenDialog(#Dialog,280,100,"Boite de Dialogue",Window,#PB_Window_ScreenCentered )
;--------------------------------------------------------------------
;/ OpenDialog(id, Largeur, Hauteur, Titre$, FenetreMereID, Options)
;/ Options peut prendre deux valeurs: #PB_Window_ScreenCentered ou #PB_Window_WindowCentered
;Je crée une liste de gadget comme pour une fenêtre normal
If CreateGadgetList(WindowID(#dialog))
TextGadget(#Dialog_Text, 40, 10,180,20,"Entrez le mot de passe pour continuer",#PB_Text_Center)
StringGadget(#Dialog_String,40, 40,180,20,"",#PB_String_Password)
ButtonGadget(#Dialog_Button,80,70,100,20,"OK")
EndIf
;--------------------------------------------------------------------
Repeat
EventID.l=WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case #Dialog_Button
Texte.s=GetGadgetText(#Dialog_String)
If Texte=""
MessageRequester("Info","Mot de passe correct")
Else
Quit=1
EndIf
EndSelect
Case #PB_Event_CloseWindow
quit=1
EndSelect
Until Quit=1
CloseDialog(#Dialog,Window)
ProcedureReturn Texte
EndProcedure
;-------------------------------------------------------------------------------------------------------
Enumeration 1
#Window
EndEnumeration
Enumeration
#Button
EndEnumeration
OpenWindow(#Window,200,200,400,400,"Fenêtre principale",#PB_Window_SystemMenu)
If CreateGadgetList(WindowID(#Window))
StringGadget(#String,100,20,180,20,"")
ButtonGadget(#Button,100,100,180,20,"Mot de passe")
EndIf
Repeat
EventID.l=WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case #Button
MotdePasse.s=DialogMotdePasse()
SetGadgetText(#String,MotdePasse)
EndSelect
Case #PB_Event_CloseWindow
quit=1
EndSelect
Until Quit=1