Splittergadget / Containerdadget Ränder und Farben

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 / Containerdadget Ränder und Farben

Beitrag 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?
PB 4.6 / 32 Bit / 64 Bit
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Splittergadget / Containerdadget Ränder und Farben

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
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 / Containerdadget Ränder und Farben

Beitrag 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
PB 4.6 / 32 Bit / 64 Bit
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Splittergadget / Containerdadget Ränder und Farben

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
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 / Containerdadget Ränder und Farben

Beitrag von smateja »

Eine Möglichkeit per API gibt es nicht?
Alternativ die Größe der Splitter ändern?
PB 4.6 / 32 Bit / 64 Bit
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Splittergadget / Containerdadget Ränder und Farben

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten