Openwindow 2.Fenster!

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

Openwindow 2.Fenster!

Beitrag 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..
Na alles Senkrecht?
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Ohne Code nicht. :wink:
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag 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
Na alles Senkrecht?
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag 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 
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

thx!!

Beitrag von FISCHAUGE »

:oops: habe ich leider nicht bemerkt!

Vielen dank!!
Na alles Senkrecht?
Benutzeravatar
PAMKKKKK
Beiträge: 321
Registriert: 21.04.2005 22:08
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von PAMKKKKK »

Vielleicht kannst du mit meinem beispiel was anfangen.
http://forums.purebasic.com/german/view ... 4898#54898
Wir Schreiben ein PureBasic Buch.
Auch du kannst mitmachen!
http://www.purearea.net/pb/english/pure ... :Main_Page
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag 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 
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Also wenn, dann mach am besten nur eine Ereignisschleife und arbeite mit EventWindowID().
Dann kann man das andere auch noch weiterbenutzen. :allright:
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

Beitrag von Batze »

Bei Zigapeda kann man das Fenster aber auch schließen indem man das im Hintergrund schließt. :wink:
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu
Antworten