Zwei fenster

Anfängerfragen zum Programmieren mit PureBasic.
Martin66119
Beiträge: 282
Registriert: 03.01.2005 11:36

Zwei fenster

Beitrag von Martin66119 »

Habe ein kleines Problem! Mit einer IDE wird folgender Code für ein Fenster erstellt. Wie kann ich den ein zweites fenster öffen und auch getrennt schließen (Fenster 1 oder Fenster 2 schließen)

Code: Alles auswählen

#ButtonGadget1 = 1
#WindowHeight =  400 
#WindowWidth =  467 
If OpenWindow(0,0,0, #WindowWidth, #WindowHeight, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget,"Your PURE BASIC application")
 If OpenWindow(1,0,0, #WindowWidth, #WindowHeight, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget,"Your PURE BASIC application")
 
   If CreateGadgetList(WindowID())
 
     ButtonGadget(1,208,132,89,25,"ButtonGadget1")

   EndIf
  EndIf 
EndIf   
    
 Repeat
  EventID.l = WaitWindowEvent()
   EventID1.l = WaitWindowEvent()
   
   If EventID = #PB_EventGadget
   
     Select EventGadgetID()
   
     EndSelect
   EndIf
   
  
 Until EventID = #PB_EventCloseWindow
   
End
Edit by NicTheQuick: Code-Tags gesetzt
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Zwei fenster

Beitrag von Kiffi »

Hallo Martin,

der folgende Beispielcode zeigt, wie man mit mehreren Fenstern arbeiten
kann. Falls was unklar ist: Nachfragen! :-)

Kleiner Tipp noch: Wenn Du in diesem Board Deinen Code postest, dann
verwende bitte in zukunft den Code-Button im Nachrichtenfenster. Danke!

Code: Alles auswählen

Enumeration
  #Window_1
  #Window_2
  #Button_1
  #Button_2
EndEnumeration
  
If OpenWindow(#Window_1, 200, 100, 300, 100, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget,"Ich bin Fenster Nr. 1")
  If CreateGadgetList(WindowID(#Window_1))
    ButtonGadget(#Button_1,5,5,100,24,"ButtonGadget1")
    Fenster_1_OK = #True
  EndIf
EndIf

If OpenWindow(#Window_2, 200, 250, 300, 100, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget,"Ich bin Fenster Nr. 2")
  If CreateGadgetList(WindowID(#Window_2))
    ButtonGadget(#Button_2,5,5,100,24,"ButtonGadget2")
    Fenster_2_OK = #True
  EndIf
EndIf

If Fenster_1_OK = #False Or Fenster_2_OK = #False
  
  MessageRequester("", "Die Fenster konnten nicht erstellt werden!")
  End
  
EndIf
    
Repeat
  
  EventID.l = WaitWindowEvent()
  EventWindowID.l = EventWindowID()
  EventGadgetID.l = EventGadgetID()
  
  Select EventWindowID
    
    Case #Window_1 ; In diesem Zweig werden nur Ereignisse verarbeitet, die das Fenster 1 betreffen
      
      Select EventID
        
        Case #PB_EventGadget
          
          Select EventGadgetID
            
            Case #Button_1
              MessageRequester("", "Button1 in Fenster1 gedrückt")
              
          EndSelect
          
        Case #PB_Event_CloseWindow
          CloseWindow(#Window_1)
          Window_1_IsClosed = #True
          
      EndSelect
      
    Case #Window_2 ; In diesem Zweig werden nur Ereignisse verarbeitet, die das Fenster 2 betreffen
      
      Select EventID
        
        Case #PB_EventGadget
          
          Select EventGadgetID
            
            Case #Button_2
              MessageRequester("", "Button2 in Fenster2 gedrückt")
              
          EndSelect
          
        Case #PB_Event_CloseWindow
          CloseWindow(#Window_2)
          Window_2_IsClosed = #True
          
      EndSelect
      
  EndSelect
  
Until Window_1_IsClosed = #True And Window_2_IsClosed = #True

MessageRequester("", "Beide Fenster wurden geschlossen. Das Programm wird nun beendet")

End
Grüße ... Kiffi
Antworten