Seite 1 von 2
Openwindow 2.Fenster!
Verfasst: 29.09.2005 17:27
von FISCHAUGE
Hi,
Also ich habe da ein kleines Problem,
Ich habe ein Fenster Nr.1 auf diesem befindet sich ein Menü mit einem Item Fenster 2 Öffnen. Fenster 2 Öffnet sich und Fenster 1 ist im Hintergrund! Nachdem ich Fenster 2 wieder schließe und zu Fenster 1 zurückkehre, und dasselbe nocheinmal machen will öffnet er das Fenster 2 nicht mehr!
Kann mir da jemmand helfen thx..
Verfasst: 29.09.2005 17:49
von Batze
Ohne Code nicht.

Verfasst: 29.09.2005 17:53
von FISCHAUGE
bitte sehr sry hatte ich komplett vergessen lol
Code: Alles auswählen
If OpenWindow(0,200,200,800,600,#PB_Window_SystemMenu,"...")
If CreateMenu(0, WindowID())
MenuTitle("Datei")
MenuItem(1,"Fenster öffnen")
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
If EventID = #PB_EventMenu
If EventMenuID()=1
If OpenWindow(1,200,200,800,600,#PB_Window_SystemMenu,"...")
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 2
EndIf
Until Quit = 2
CloseWindow(1)
UseWindow(0)
EndIf
EndIf
EndIf
EndIf
EndIf
Until Quit=1
EndIf
End
Verfasst: 29.09.2005 18:12
von Batze
Bitte, Quit ist bei dir immer 2
Code: Alles auswählen
If OpenWindow(0,200,200,800,600,#PB_Window_SystemMenu,"...")
If CreateMenu(0, WindowID())
MenuTitle("Datei")
MenuItem(1,"Fenster öffnen")
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
If EventID = #PB_EventMenu
If EventMenuID()=1
If OpenWindow(1,200,200,800,600,#PB_Window_SystemMenu,"...")
Quit = 0 ; Sonst ist die Schleife immer zu Ende
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 2
EndIf
Until Quit = 2
CloseWindow(1)
UseWindow(0)
EndIf
EndIf
EndIf
EndIf
EndIf
Until Quit=1
EndIf
End
thx!!
Verfasst: 29.09.2005 18:14
von FISCHAUGE

habe ich leider nicht bemerkt!
Vielen dank!!
Verfasst: 29.09.2005 19:09
von PAMKKKKK
Vielleicht kannst du mit meinem beispiel was anfangen.
http://forums.purebasic.com/german/view ... 4898#54898
Verfasst: 29.09.2005 19:36
von zigapeda
und damit es übersichtlicher wird nimmst du die Repeat : Until schleife des 2. fensters, schneidest sie aus, fügst sie oberhald des anderen codes ein, änderst das Until ... in ein ForEver und das quit = 2 in ein Break und schreibst schließlich ein Procedure offnezweitesfenster() und ein EndProcedure über bzw. unter das Repeat bzw. ForEver und fügst den procedurenamen da ein wo du die repeat : Until schleife ausgeschnitten hast: (achja und das if openwindow auch noch mit in die procedure)
Code: Alles auswählen
Procedure offnezweitesfenster()
If OpenWindow(1,200,200,800,600,#PB_Window_SystemMenu,"...")
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Break
EndIf
ForEver
CloseWindow(1)
UseWindow(0)
EndIf
EndProcedure
If OpenWindow(0,200,200,800,600,#PB_Window_SystemMenu,"...")
If CreateMenu(0, WindowID())
MenuTitle("Datei")
MenuItem(1,"Fenster öffnen")
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
EndIf
If EventID = #PB_EventMenu
If EventMenuID()=1
offnezweitesfenster()
EndIf
EndIf
Until Quit=1
EndIf
End
Verfasst: 29.09.2005 21:14
von Batze
Also wenn, dann mach am besten nur eine Ereignisschleife und arbeite mit EventWindowID().
Dann kann man das andere auch noch weiterbenutzen.

Verfasst: 29.09.2005 21:17
von ts-soft
Batze hat geschrieben:Also wenn, dann mach am besten nur eine Ereignisschleife und arbeite mit EventWindowID().
Dann kann man das andere auch noch weiterbenutzen.

Für modale Dialogfenster ist das Beispiel von zigapeda aber besser geeignet, ansonsten haste Recht
Verfasst: 29.09.2005 21:19
von Batze
Bei Zigapeda kann man das Fenster aber auch schließen indem man das im Hintergrund schließt.
