Splittergadget Layout Probleme

Anfängerfragen zum Programmieren mit PureBasic.
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

Splittergadget Layout Probleme

Beitrag von smateja »

Hallo zusammen,

ich versuche jetzt seit einer Ewigkeit ein Fensterlayout mit Hilfe von Splittergadgets und Containgergadgets zu erstellen und bekomme es nicht hin wie ich es gerne möchte.

Ziel ist es, 3 Spalten zu haben - wobei die Spalte links und rechts jeweils in 2 Zeilen unterteilt ist.

Mein bisheriger versuch schaut folgendermaßen aus:

Code: Alles auswählen




Enumeration

#Hauptfenster

#Layout_Links_Oben
#Layout_Links_Unten
#Layout_Hauptbereich
#Layout_Rechts_Oben
#Layout_Rechts_Unten

#statusbar

#Splitter_Horizontal_Links
#Splitter_Horizontal_Rechts

#Splitter_Vertikal_Links
#Splitter_Vertikal_Rechts

EndEnumeration



Layout_Offset_Statusbar = 22
Layout_Offset_Oben= 80
Layout_Panelweite_Links =200
Layout_Panelweite_Rechts =200

OpenWindow(#Hauptfenster, 0, 0, 1024, 768, "SplitterGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget)
 
CreateStatusBar(#statusbar, WindowID(#Hauptfenster))
AddStatusBarField(90)
AddStatusBarField(90)
AddStatusBarField(90)
AddStatusBarField(90)
AddStatusBarField(90)


ContainerGadget(#Layout_Links_Oben, 0, 0, 0, 0, #PB_Container_Raised)
    CloseGadgetList()

ContainerGadget(#Layout_Links_Unten, 0, 0, 0, 0, #PB_Container_Raised)
    CloseGadgetList()

ContainerGadget(#Layout_Hauptbereich, 0, 0, 0, 0, #PB_Container_Raised)
    CloseGadgetList()

ContainerGadget(#Layout_Rechts_Oben, 0, 0, 0, 0, #PB_Container_Raised)
    CloseGadgetList()

ContainerGadget(#Layout_Rechts_Unten, 0, 0, 0, 0, #PB_Container_Raised)
    CloseGadgetList()
    

    
 SplitterGadget(#Splitter_Horizontal_Links, 0, 0, Layout_Panelweite_Links, WindowHeight(#Hauptfenster)-(Layout_Offset_Statusbar+Layout_Offset_Oben), #Layout_Links_Oben, #Layout_Links_Unten)
 SetGadgetAttribute(#Splitter_Horizontal_Links, #PB_Splitter_FirstMinimumSize, 200)
  SetGadgetAttribute(#Splitter_Horizontal_Links, #PB_Splitter_SecondMinimumSize, 200)

 SplitterGadget(#Splitter_Horizontal_Rechts, WindowWidth(#Hauptfenster)-Layout_Panelweite_Rechts, 0, Layout_Panelweite_Rechts, WindowHeight(#Hauptfenster)-(Layout_Offset_Statusbar+Layout_Offset_Oben), #Layout_Rechts_Oben, #Layout_Rechts_Unten)  
 SetGadgetAttribute(#Splitter_Horizontal_Rechts, #PB_Splitter_FirstMinimumSize, 200) 
 SetGadgetAttribute(#Splitter_Horizontal_Rechts, #PB_Splitter_SecondMinimumSize, 200)   
    
    
 SplitterGadget(#Splitter_Vertikal_Links, 0, Layout_Offset_Oben, WindowWidth(#Hauptfenster)-(Layout_Panelweite_Links+Layout_Panelweite_Rechts),  WindowHeight(#Hauptfenster)-(Layout_Offset_Statusbar+Layout_Offset_Oben),  #Splitter_Horizontal_Links,#Layout_Hauptbereich,#PB_Splitter_FirstFixed|#PB_Splitter_Vertical)    
 SetGadgetAttribute(#Splitter_Vertikal_Links, #PB_Splitter_FirstMinimumSize, 200) 
 
 SplitterGadget(#Splitter_Vertikal_Rechts, Layout_Panelweite_Links, Layout_Offset_Oben, 200, WindowHeight(#Hauptfenster)-(Layout_Offset_Statusbar+Layout_Offset_Oben),  #Layout_Hauptbereich,#Splitter_Horizontal_Rechts ,#PB_Splitter_Vertical)    
 SetGadgetAttribute(#Splitter_Vertikal_Rechts, #PB_Splitter_SecondMinimumSize, 200)  
    

    
Repeat
   event = WaitWindowEvent(20)
   
   Select event
      Case #PB_Event_SizeWindow
      
      ResizeGadget(#Splitter_Vertikal_Links, 0, 0, WindowWidth(#Hauptfenster)-200, WindowHeight(#Hauptfenster))
      ResizeGadget(#Splitter_Vertikal_Rechts,WindowWidth(#Hauptfenster)-200, 0, 200, WindowHeight(#Hauptfenster))
      
         ;ResizeGadget(#Splitter_Horizontal_Links, #PB_Ignore, #PB_Ignore,Layout_Panelweite_Links, WindowHeight(#Hauptfenster)-(Layout_Offset_Statusbar+Layout_Offset_Oben))
         ;ResizeGadget(#Splitter_Horizontal_Rechts, WindowWidth(#Hauptfenster)-Layout_Panelweite_Rechts, 0,(Layout_Panelweite_Rechts+Layout_Panelweite_Rechts), WindowHeight(#Hauptfenster)-(Layout_Offset_Statusbar+Layout_Offset_Oben))
         
         ;ResizeGadget(#Splitter_Vertikal_Links, #PB_Ignore, Layout_Offset_Oben, WindowWidth(#Hauptfenster)-(Layout_Panelweite_Links), WindowHeight(#Hauptfenster)-(Layout_Offset_Statusbar+Layout_Offset_Oben))
         ;ResizeGadget(#Splitter_Vertikal_Rechts, #PB_Ignore, #PB_Ignore, WindowWidth(#Hauptfenster), WindowHeight(#Hauptfenster))
   EndSelect 
   
Until event = #PB_Event_CloseWindow

Ich hab schon x Variationen versucht - aber ich komme leider nicht zu meinem Ergebnis.

Thx schon mal im Vorraus
PB 4.6 / 32 Bit / 64 Bit
Benutzeravatar
gnozal
Beiträge: 219
Registriert: 04.12.2004 13:01
Wohnort: Frankreich (67)
Kontaktdaten:

Re: Splittergadget Layout Probleme

Beitrag von gnozal »

Hello, I am not sure that it's exactly what you want :

Code: Alles auswählen

Enumeration
  #Window_0
EndEnumeration
Enumeration
  #Container_Oben_1
  #Container_Unten_1
  #Container_Mitte
  #Container_Oben_2
  #Container_Unten_2
  #Splitter_Links
  #Splitter_Rechts
  #Splitter_LM
  #Splitter_Main
EndEnumeration
Procedure OpenWindow_Window_0()
  If OpenWindow(#Window_0, 450, 200, 592, 415, "Window_0", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    ContainerGadget(#Container_Oben_1, 15, 30, 110, 150, #PB_Container_Raised)
    CloseGadgetList()
    ContainerGadget(#Container_Unten_1, 15, 180, 110, 145, #PB_Container_Raised)
    CloseGadgetList()
    SplitterGadget(#Splitter_Links, 5, 20, 125, 355, #Container_Oben_1, #Container_Unten_1, #PB_Splitter_Separator)
    ContainerGadget(#Container_Mitte, 130, 30, 140, 295, #PB_Container_Raised)
    CloseGadgetList()
    ContainerGadget(#Container_Oben_2, 275, 30, 115, 150, #PB_Container_Raised)
    CloseGadgetList()
    ContainerGadget(#Container_Unten_2, 275, 180, 115, 145, #PB_Container_Raised)
    CloseGadgetList()
    SplitterGadget(#Splitter_Rechts, 270, 20, 125, 350, #Container_Oben_2, #Container_Unten_2, #PB_Splitter_Separator)
    SplitterGadget(#Splitter_LM, 0, 5, 265, 385, #Splitter_Links, #Container_Mitte, #PB_Splitter_Separator|#PB_Splitter_Vertical)
    SplitterGadget(#Splitter_Main, 10, 10, 570, 395, #Splitter_LM, #Splitter_Rechts, #PB_Splitter_Separator|#PB_Splitter_Vertical)
    SetGadgetState(#Splitter_Main, 385)
    SetGadgetState(#Splitter_LM, 125)
    SetGadgetState(#Splitter_Rechts, 200)
    SetGadgetState(#Splitter_Links, 200)
  EndIf
EndProcedure

OpenWindow_Window_0()

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0
          CloseWindow(#Window_0)
          Break
      EndSelect
  EndSelect
ForEver
Zuletzt geändert von gnozal am 22.03.2011 15:38, insgesamt 1-mal geändert.
For free libraries and tools, visit my web site (also home of jaPBe V3 and PureFORM).
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

Re: Splittergadget Layout Probleme

Beitrag von smateja »

Thx a lot - works nice and its exactly what i am looking for.

By the way - the last CloseGadgetList() must be deleted.
PB 4.6 / 32 Bit / 64 Bit
Antworten