je me rappelle plus comment ouvrir une deuxieme fenetre
je me rappelle plus comment ouvrir une deuxieme fenetre
bonjour
voila je me rappelle plus comment ouvrir une deuxieme fenetre
quand on la fenetre principale qui ouverte et quand on clique sur un bouton , on ouvre une deuxieme fenetre
c'est la boucle de la deuxieme fenetre que je me rappelle plus ...
qui m'aider svp
merci
voila je me rappelle plus comment ouvrir une deuxieme fenetre
quand on la fenetre principale qui ouverte et quand on clique sur un bouton , on ouvre une deuxieme fenetre
c'est la boucle de la deuxieme fenetre que je me rappelle plus ...
qui m'aider svp
merci
@bernard13: sacré toi - je croyais que tu développais maintenant uniquement en Visual...
à savoir tout de même. veux tu que la fenetre principale se bloque tant que la fenetre secondaire est ouverte - OU alors tu veux pouvoir gérer les 2 en MEME temps ?
tu peux utiliser DisableWindow() ET l'argument ParentWindow de Openwindow() pour bloquer la fenetre 'appelante'.
Code : Tout sélectionner
Enumeration 0 ; Id. Fenêtres
#FENETRE1
#FENETRE2
EndEnumeration
Enumeration 0 ; Id. Gadgets
#FEN1_BOUTON
#FEN1_FERMER
#FEN2_FERMER
EndEnumeration
If OpenWindow(#FENETRE1, 0, 0, 640, 480, "Fenêtre 1", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#FENETRE1))
ButtonGadget(#FEN1_BOUTON, 5, 5, 100, 22, "Ouvrir Fenêtre 2")
ButtonGadget(#FEN1_FERMER, 5, 45, 100, 22, "Quitter")
EndIf
Repeat
Evenement.l = WaitWindowEvent()
Select EventWindow()
;=====================================================
;== EVENEMENTS DE LA FENETRE PRINCIPALE
;=====================================================
Case #FENETRE1
Select Evenement
Case #PB_Event_Gadget
Select EventGadget()
Case #FEN1_BOUTON
If OpenWindow(#FENETRE2, 0, 0, 320, 240, "Fenêtre 2", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#FENETRE2))
ButtonGadget(#FEN2_FERMER, 5, 5, 100, 22, "Fermer")
EndIf
EndIf
Case #FEN1_FERMER
Break
EndSelect
Case #PB_Event_CloseWindow
Break
EndSelect
;=====================================================
;== EVENEMENTS DE LA FENETRE SECONDAIRE
;=====================================================
Case #FENETRE2
Select Evenement
Case #PB_Event_Gadget
If EventGadget() = #FEN2_FERMER
CloseWindow(#FENETRE2)
EndIf
Case #PB_Event_CloseWindow
CloseWindow(#FENETRE2)
EndSelect
EndSelect
ForEver
EndIf
tu peux utiliser DisableWindow() ET l'argument ParentWindow de Openwindow() pour bloquer la fenetre 'appelante'.
alors ?
bon voici une trame de codes pour une fenêtre principale + fenêtre secondaire agissant comme une boite de dialogue.
contrairement à l'exemple précédent, de cette façon l'utilisateur ne peut plus interagir avec la fenêtre principale lorsque la fenêtre secondaire est ouverte. c'est le cas le plus fréquent et le plus simple à gérer dans un premier temps.
bon voici une trame de codes pour une fenêtre principale + fenêtre secondaire agissant comme une boite de dialogue.
contrairement à l'exemple précédent, de cette façon l'utilisateur ne peut plus interagir avec la fenêtre principale lorsque la fenêtre secondaire est ouverte. c'est le cas le plus fréquent et le plus simple à gérer dans un premier temps.
Code : Tout sélectionner
Enumeration 0 ; Id. Fenêtres
#FENETRE1
#FENETRE2
EndEnumeration
Enumeration 0 ; Id. Gadgets
#FEN1_BOUTON
#FEN1_FERMER
#FEN2_BOUTON
#FEN2_VALIDER
#FEN2_ANNULER
EndEnumeration
Procedure FenetreSecondaire()
Protected Resultat.l = #False
; Création de la fenêtre secondaire - à noter : #PB_Window_WindowCentered et WindowID(#FENETRE1)
If OpenWindow(#FENETRE2, 0, 0, 320, 90, "Fenêtre Secondaire", #PB_Window_SystemMenu|#PB_Window_WindowCentered, WindowID(#FENETRE1))
DisableWindow(#FENETRE1, #True)
If CreateGadgetList(WindowID(#FENETRE2))
ButtonGadget(#FEN2_BOUTON, 5, 5, 310, 50, "Cliquez-moi !", #PB_Button_Toggle)
ButtonGadget(#FEN2_VALIDER, 5, 60, 150, 25, "Valider")
ButtonGadget(#FEN2_ANNULER, 165, 60, 150, 25, "Annuler")
EndIf
; Boucle de gestion des évênements de la fenêtre secondaire
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #FEN2_VALIDER
Resultat = GetGadgetState(#FEN2_BOUTON)
Break
Case #FEN2_ANNULER
Resultat = -1
Break
EndSelect
Case #PB_Event_CloseWindow
Resultat = -1
Break
EndSelect
ForEver
; Ferme la fenêtre secondaire, puis réactive la fenêtre principale
CloseWindow(#FENETRE2)
DisableWindow(#FENETRE1, #False)
EndIf
; Retourne le résultat de la boite de dialogue : #True (1), #False (0) ou Annulé (-1).
ProcedureReturn Resultat
EndProcedure
Procedure FenetrePrincipale()
; Création de la fenêtre principale - à noter : #PB_Window_ScreenCentered
If OpenWindow(#FENETRE1, 0, 0, 640, 480, "Fenêtre Principale", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#FENETRE1))
ButtonGadget(#FEN1_BOUTON, 5, 5, 140, 30, "Fenêtre Secondaire")
ButtonGadget(#FEN1_FERMER, 5, 45, 140, 30, "Quitter")
EndIf
; Boucle de gestion des évênements de la fenêtre principale
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #FEN1_BOUTON
; Ouvre la fenêtre secondaire et affiche le résultat de la saisie-utilisateur
Select FenetreSecondaire()
Case -1
MessageRequester("Message", "Opération annulée !", #MB_ICONEXCLAMATION)
Case #True
MessageRequester("Message", "Le bouton a été coché !", #MB_ICONINFORMATION)
Case #False
MessageRequester("Message", "Le bouton n'a pas été coché !", #MB_ICONERROR)
EndSelect
Case #FEN1_FERMER
Break
EndSelect
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
EndIf
EndProcedure
; Démarrage du programme
FenetrePrincipale()
; Fin du programme
End
merci flype
j'ai trouver ceci dis ce que tu en pense et ce qu'il ne va pas
j'ai trouver ceci dis ce que tu en pense et ce qu'il ne va pas
Code : Tout sélectionner
Enumeration
#main_0
#fenetre_1
EndEnumeration
Enumeration
#Bouton
EndEnumeration
Procedure main()
If OpenWindow(#main_0,0,0,400,400,"Fenetre1 ",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
ButtonGadget(#bouton,200,200,120,30,"Cliquer")
EndIf
EndIf
EndProcedure
Procedure Fenetre1()
If OpenWindow(#fenetre_1,0,0,240,300,"Fenetre1",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
fermer_window0=1
EndSelect
Until fermer_window0=1
CloseWindow(#fenetre_1)
While WindowEvent():Wend
EndIf
EndProcedure
Main()
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #bouton: fenetre1()
EndSelect
Case #PB_Event_CloseWindow
fermer_window0=1
EndSelect
Until fermer_window0=1
End
'Enumeration' ou 'Enumeration 0' c'est pareil en fait.
'Enumeration 1' fait commencé la liste à 1 tout simplement.
mais tout çà c'est dans la doc bernard !!!
lis la doc - c'est important et ca fait gagner du temps et des connaissances.
F1 quand ton curseur est sur le mot clef 'Enumeration' et tout y est dit.
'Enumeration 1' fait commencé la liste à 1 tout simplement.
mais tout çà c'est dans la doc bernard !!!
lis la doc - c'est important et ca fait gagner du temps et des connaissances.
F1 quand ton curseur est sur le mot clef 'Enumeration' et tout y est dit.