Il n'y a que deux commandes:
-Dialog=OpenDialog(#Fenetre,LargeurInterne, HauteurInterne,Titre$,Fenêtre_Mère,Option)
Comme vous pouvez le remarquer, il n'y a pas de position x et y puisque la pseudo Boite de Dialogue est centrée soit par rapport à la fenêtre mère, soit par rapport au Bureau, par la variable Option, respectivement 0 (Fenêtre Mère) ou 1 (Bureau).
La valeur de retour est différent de 0 en cas de réussite où bien le nouvel identifiant de la boite de dialogue si vous utilisez #Pb_Any
-CloseDialog(#Fenêtre)
Détruit la boite de dialogue, rien ne vous empêche de la cacher
Un petit exemple pour essayer:
Code : Tout sélectionner
Procedure DIALOG()
Shared Dialog
Dialog=OpenDialog(#PB_Any,200,100,"Simulation Boite de Dialogue",1,0)
If CreateGadgetList(WindowID(Dialog))
StringGadget(2,10, 10,180,20,"Normal StringGadget...")
ButtonGadget(3,10,60,180,20,"OK")
EndIf
EndProcedure
OpenWindow(1,200,200,400,400,#PB_Window_SystemMenu,"Fenêtre principale")
If CreateGadgetList(WindowID(1))
ButtonGadget(0,10,10,180,20,"Dialog")
EditorGadget (1,10,40,380,380,#PB_Container_Raised)
EndIf
Repeat
EventID.l=WaitWindowEvent()
Select EventID
Case #PB_EventGadget
Select EventGadgetID()
Case 0
DIALOG()
Case 3
texte.s=GetGadgetText(2)
SetGadgetText(1,texte)
CloseDialog(Dialog)
EndSelect
Case #WM_CLOSE
Quit=1
EndSelect
Until Quit=1
Je n'ai fait des essais que sur Window XP SP1
Laissez moi vos impressions
