Seite 1 von 1

Nach Schließen eines 2. Fensters auf 1. Malen [Gelöst]

Verfasst: 26.03.2013 18:05
von Chimorin
Halli Hallo,

ich poste dieses Problem im Anfängerforum, weil ich wohl dieses Anfängerproblem versäumt habe :oops:
Problem ist, ich habe ein Fenster, erstelle ein Childwindow und nach Beenden dieses wird später ein Gadget gelöscht und nochmals gezeichnet.
Hier kommt nun ein Fehler, weil der Focus immer noch auf dem 2. Fenster liegt. Ich hab nach SetFocus() und sowas gesucht, gibts aber nicht.

Damit auch die codehungrigen Geier hier befriedigt sind, hier mein Problem in Code ;)

Code: Alles auswählen

EnableExplicit

Global.i Event

Enumeration
  #Window_0
  #Window_1
EndEnumeration


Enumeration
  #Button_0
  #Container_0
EndEnumeration

Procedure Container()
  ContainerGadget(#Container_0, 70, 10, 200, 200, #PB_Container_Single)
EndProcedure


OpenWindow(#Window_0, 200, 200, 400, 400, "Fenster 1")
ButtonGadget(#Button_0, 10, 10, 50, 50, "Neues Fenster")
Container()
CloseGadgetList()       ;#Container_0

Repeat
  Event = WindowEvent()
  
  Select Event
    Case 0
      Delay(5)
      
    Case #PB_Event_CloseWindow
      End
      
    Case #PB_Event_Gadget
      
      Select EventGadget()
        Case #Button_0
          
          Select EventType()
            Case #PB_EventType_LeftClick
              OpenWindow(#Window_1, 400, 400, 200, 200, "Fenster 2")
              Repeat
              Until WindowEvent() = #PB_Event_CloseWindow
              CloseWindow(#Window_1)
              FreeGadget(#Container_0)
              Container()
              
          EndSelect
          
      EndSelect
      
  EndSelect
  
ForEver

Re: Nach Schließen eines 2. Fensters auf 1. Malen ---> Fehle

Verfasst: 26.03.2013 18:09
von STARGÅTE
Dafür gibt es UseGadgetList(WindowID(#Window_0)) um auf das "alte" Fenster zuzugreifen.

Außerdem musst du nach deinem Container() auch wieder CloseGadgetList() aufrufen damit nicht alles in den Container kommt.

Code: Alles auswählen


              CloseWindow(#Window_1)
              FreeGadget(#Container_0)
              UseGadgetList(WindowID(#Window_0))
              Container()
              CloseGadgetList()

Re: Nach Schließen eines 2. Fensters auf 1. Malen ---> Fehle

Verfasst: 26.03.2013 18:13
von Chimorin
@Stargate:

Aha, vielen Dank. Ich hätte gedacht, dass man da wieder OpenGadgetlist() benutzt, was aber nicht funktioniert ;)
Das ganze war nur ein in 2min zusammengeschriebenes Beispiel, Kot für die Toilette ^^