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. :wink:

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 :allright:

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
:oops: 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. :allright:

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. :allright:
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. :wink: