Seite 1 von 1

Splittergadget / Containerdadget Ränder und Farben

Verfasst: 22.03.2011 18:20
von smateja
Hallo zusammen,

mir ist aufgefallen, dass wenn man mit Splittergadgets und Containergadgets arbeitet - trotz der Flags #PB_Container_BorderLess - dass es hier zu Randbildungen kommt.

Gibt es hier eine Möglichkeit die Ränder zu entfernen oder ggf einzufärben?
Ich weiß auch nicht 100% ob es vom Splitter oder vom Containergadget kommt.

Hat hier jemand ideen?

Re: Splittergadget / Containerdadget Ränder und Farben

Verfasst: 22.03.2011 18:47
von RSBasic
Ich habe bei mir getestet und sehe nichts.
Kannst du einen Screenshot hochladen und hier posten, so dass wir das nachvollziehen können?
Aber #PB_Splitter_Separator hast du nicht genommen oder?

\\Edit:
Beispielcode:

Code: Alles auswählen

EnableExplicit

Define EventID

If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  If ContainerGadget(1,0,0,0,0,0)
    CloseGadgetList()
  EndIf
  If ContainerGadget(2,0,0,0,0,0)
    CloseGadgetList()
  EndIf
  SplitterGadget(3,10,10,WindowWidth(0)-20,WindowHeight(0)-20,1,2,0)
  TextGadget(4,0,(WindowHeight(0)/2)-10,10,20,">",0)
  
  Repeat
    EventID=WaitWindowEvent()
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf
Beispielscreenshot:
Bild

Re: Splittergadget / Containerdadget Ränder und Farben

Verfasst: 22.03.2011 19:14
von smateja
Ich habe es glaub ich herausgefunden woran das liegt. Sobald man mit

SetGadgetColor(#Layout_Links_Oben, #PB_Gadget_BackColor, RGB(68, 67, 65)

den Hintergrund des Containers ändert - hat man diesen Effekt.

Beisiel:

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", #WS_SIZEBOX|#PB_Window_BorderLess|#PB_Window_ScreenCentered)
 SmartWindowRefresh(#Hauptfenster,1)
SetWindowColor(#Hauptfenster, RGB(0, 0, 0))

WindowBounds(#Hauptfenster, 800, 600, 1024, 768)

CreateStatusBar(#statusbar, WindowID(#Hauptfenster))
AddStatusBarField(90)
AddStatusBarField(90)
AddStatusBarField(90)
AddStatusBarField(90)
AddStatusBarField(90)


ContainerGadget(#Layout_Links_Oben, 0, Layout_Offset_Oben, Layout_Panelweite_Links, 200)
    CloseGadgetList()

ContainerGadget(#Layout_Links_Unten, 0, 200, Layout_Panelweite_Links, 200)
    CloseGadgetList()

ContainerGadget(#Layout_Hauptbereich, Layout_Panelweite_Links, Layout_Offset_Oben, WindowWidth(#Hauptfenster)-(Layout_Panelweite_Links+Layout_Panelweite_Rechts), WindowHeight(#Hauptfenster)-(Layout_Offset_Oben+Layout_Offset_Statusbar))
    CloseGadgetList()

ContainerGadget(#Layout_Rechts_Oben, WindowWidth(#Hauptfenster)-Layout_Panelweite_Rechts, Layout_Offset_Oben,Layout_Panelweite_Rechts , 200)
    CloseGadgetList()

ContainerGadget(#Layout_Rechts_Unten, WindowWidth(#Hauptfenster)-Layout_Panelweite_Rechts, 200, Layout_Panelweite_Rechts, 200)
    CloseGadgetList()
    
SetGadgetColor(#Layout_Links_Oben, #PB_Gadget_BackColor, RGB(68, 67, 65))
SetGadgetColor(#Layout_Links_Unten, #PB_Gadget_BackColor, RGB(68, 67, 65))
SetGadgetColor(#Layout_Hauptbereich, #PB_Gadget_BackColor, RGB(68, 67, 65))
SetGadgetColor(#Layout_Rechts_Oben, #PB_Gadget_BackColor, RGB(68, 67, 65))
SetGadgetColor(#Layout_Rechts_Unten, #PB_Gadget_BackColor, RGB(68, 67, 65))
 
    
    SplitterGadget(#Splitter_Horizontal_Links, 0, Layout_Offset_Oben, Layout_Panelweite_Links, WindowHeight(#Hauptfenster)-(Layout_Offset_Oben-Layout_Offset_Statusbar), #Layout_Links_Oben, #Layout_Links_Unten)
    SplitterGadget(#Splitter_Horizontal_Rechts, WindowWidth(#Hauptfenster)-Layout_Panelweite_Rechts, Layout_Offset_Oben, Layout_Panelweite_Rechts, WindowHeight(#Hauptfenster)-(Layout_Offset_Oben+Layout_Offset_Statusbar), #Layout_Rechts_Oben, #Layout_Rechts_Unten)
    
    
    
    SplitterGadget(#Splitter_Vertikal_Links, 0, Layout_Offset_Oben, Layout_Panelweite_Links, WindowHeight(#Hauptfenster)-(Layout_Offset_Oben+Layout_Offset_Statusbar), #Splitter_Horizontal_Links, #Layout_Hauptbereich, #PB_Splitter_Vertical|#PB_Splitter_FirstFixed)
      SetGadgetState(#Splitter_Vertikal_Links, Layout_Panelweite_Links)
    
    SplitterGadget(#Splitter_Vertikal_Rechts, 0, Layout_Offset_Oben, WindowWidth(#Hauptfenster), WindowHeight(#Hauptfenster)-(Layout_Offset_Oben+Layout_Offset_Statusbar), #Splitter_Vertikal_Links, #Splitter_Horizontal_Rechts, #PB_Splitter_Vertical|#PB_Splitter_SecondFixed)    
      SetGadgetState(#Splitter_Vertikal_Rechts, WindowWidth(#Hauptfenster)-Layout_Panelweite_Rechts)



Repeat
   event = WaitWindowEvent(10)

   Select event
      Case #PB_Event_SizeWindow
      
        
        ResizeGadget(#Splitter_Vertikal_Rechts, 0, Layout_Offset_Oben, WindowWidth(#Hauptfenster), WindowHeight(#Hauptfenster)-(Layout_Offset_Oben+Layout_Offset_Statusbar))
      
      EndSelect 
   
Until event = #PB_Event_CloseWindow

Mhmm=? - Mach ich jetzt was falsch hier mit dem Hintergrund setzen? Ist das ein Bug/Feature etc?

Thx schon mal

Re: Splittergadget / Containerdadget Ränder und Farben

Verfasst: 22.03.2011 19:25
von RSBasic
Das liegt am SplitterGadget. Das was du siehst, ist die Linie vom SplitterGadget, die du fürs Ändern der Größe der jeweiligen Gadgets brauchst.
Derzeit ist es leider noch nicht möglich, die Hintergrundfarbe dieses Gadgets/dieser Linie zu ändern.

Re: Splittergadget / Containerdadget Ränder und Farben

Verfasst: 22.03.2011 19:32
von smateja
Eine Möglichkeit per API gibt es nicht?
Alternativ die Größe der Splitter ändern?

Re: Splittergadget / Containerdadget Ränder und Farben

Verfasst: 22.03.2011 19:37
von ts-soft
smateja hat geschrieben:Eine Möglichkeit per API gibt es nicht?
Ein Splitter ist kein Windows-Control, somit gibts auch keine API dazu.
Im engl. Forum oder auf srod seiner Homepage nach nxSplitter suchen,
der läßt sich zumindest Skinnen und flickert auch nicht wie ein Lämmerschwanz.