Seite 1 von 1

Resize Feld, Frame ... nach resize Main Window

Verfasst: 30.03.2006 18:27
von funk.munich
Hi zusammen,

wie kann ich es schaffen, wenn ich mein Hauptfenster vergrössere/verkleinere
dass sich meine anderen Fenster der neuen Grösse anpassen?

Wenn ich nur ein Fenster nutze dann funxt es einwandfrei, aber beim
Aufruf eines weiteren Fensters haut es dann nicht mehr hin :(

Code: Alles auswählen


#MAIN_FLAG = #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_WindowCentered
If OpenWindow(0, 0, 0, 400, 400, #MAIN_FLAG, "Resize")

   If CreateGadgetList(WindowID())

    Frame3DGadget(1, 5,  5, 215, WindowHeight(), "Test Case ID")
    
    ListViewGadget(2, 10, 20, 200, WindowHeight() - 20)
    
    ; wenn ich kein weiteres Fenster aufrufe funktioniert die Anpassung
    ; aber beim Aufruf eines neuen Fensters verlieren die Felder meines ersten Fensters die Größenangaben
    ButtonGadget(3, 220, 20, 60, 20, "Open", #PB_Button_Toggle)
    
  EndIf

EndIf

Procedure newWindow()

  If OpenWindow(4, 0, 0, 200, 200, #PB_Window_SystemMenu, "New")

  EndIf

EndProcedure

Repeat
    
    Select WaitWindowEvent()
    
    Case #PB_Event_CloseWindow
    
      Select EventWindowID()

        Case 0
          CloseWindow(EventWindowID())
          QUIT = 1
          
        Case 4
          CloseWindow(EventWindowID())
               
      EndSelect
      
    Case #PB_Event_Gadget
      Select EventGadgetID()
        Case 3
          newWindow()
      EndSelect
      
    Case #PB_Event_SizeWindow
        ResizeGadget(1, -1, -1, -1, (WindowHeight()))    
        ResizeGadget(2, -1, -1, -1, (WindowHeight() - 20))    
      
  EndSelect

Until QUIT = 1
End
Wäre super, wenn Ihr mir mal wieder einen Tipp geben könntet.

Danke + Gruß,
Daniel

Re: Resize Feld, Frame ... nach resize Main Window

Verfasst: 30.03.2006 18:52
von Kiffi
Hallo funk.munich

[c]WindowHeight()[/c] bezieht sich in PB3.94 immer auf das aktuelle Fenster.

Aus diesem Grund musst Du dieses bei mehreren Fenstern zuvor setzen mit:

[c]UseWindow(0) [/c]

In Deinem Fall also

Code: Alles auswählen

Case #PB_Event_SizeWindow
 UseWindow(0)
 ResizeGadget(1, -1, -1, -1, (WindowHeight()))   
 ResizeGadget(2, -1, -1, -1, (WindowHeight() - 20))    
Grüße ... Kiffi

Verfasst: 30.03.2006 20:44
von funk.munich
Hi Kiffi,

hier funk.munich :D
Super vielen Dank. Das hat sofort geklappt.

Gruß,
Daniel

Verfasst: 30.03.2006 23:51
von Kiffi
Hallo Daniel,

> Das hat sofort geklappt.

Prima! :-)

Falls Du mal irgendwann vorhast, auf PB4 umzusteigen: Dort kannst Du
sofort die FensterID dem Befehl WindowHeight() übergeben, so dass
UseWindow() überflüssig wird.

Code: Alles auswählen

Case #PB_Event_SizeWindow
 ResizeGadget(1, -1, -1, -1, (WindowHeight(0)))   
 ResizeGadget(2, -1, -1, -1, (WindowHeight(0) - 20))   
Grüße ... Kiffi