Frame3DGadget farbig machen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Frame3DGadget farbig machen

Beitrag von dysti »

Hallo,

Wie kan man ein Frame3DGadget farbig machen?

Code: Alles auswählen

 If OpenWindow(0, 0, 0, 320, 250, "Frame3DGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    CreateGadgetList(WindowID(0))
      Frame3DGadget(0, 10,  10, 300, 50, "Frame3DGadget Standard")
      Frame3DGadget(1, 10,  70, 300, 50, "", #PB_Frame3D_Single)
      Frame3DGadget(2, 10, 130, 300, 50, "", #PB_Frame3D_Double)
      Frame3DGadget(3, 10, 190, 300, 50, "", #PB_Frame3D_Flat)
    
    Repeat
    Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf

PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Normalerweise mit SetGadgetColor() aber ich sehe gerade does Fame gadgets nicht unterstüzt werden.

Was soll den farbig dargestellt werden? Nur der Hintergrund oder auch der Rahmen und Text?
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

farbe functioniert nicht mit alen gadgets und ist zum einfärben eines ganzen Fensters nicht zu empfehlen.
Ich würde die PBOSL Purecolor lib benutzen, allerdings überschreibt diese den XP style.
Ansonsten die SkinWin Lib
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ich sehe hier ein kernproblem beim einfach-mal-eben-farbig-machen
gegenüber einem kompletten skinning.

das Frame3DGadget ist dazu ausgelegt, mit den systemfarben zu arbeiten.

eine andere farbgebung würde ich da doch über möglichst sanftes skinning lösen,
eventuell über ein selbsterstelltes gadget.

aber da es ja mit den farben der gesamten GUI harmonieren muss,
lieber gleich komplett skinnen.
(oder komplett sein lassen, es gibt nur wenige anwendungsbereiche, wo skinning wirklich maßgeblich ist)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

so hatte ich es gemeint. Wollte sowas machen wie bei den Officepaketen. Links sollte später das Framegadget angeordnet werden. Paar Grafiken innerhalb zum anklicken. Ich hoffe, ihr versteht was ich meine. Vielleicht wird das ja auch ganz anders gemacht.

Code: Alles auswählen

f OpenWindow(0, 0, 0, 320, 250, "Frame3DGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    CreateGadgetList(WindowID(0))
      Frame3DGadget(#frame1, 10,  10, 300, 50, "Frame3DGadget Standard")
     
     setfarbe(#frame1,........

      Frame3DGadget(1, 10,  70, 300, 50, "", #PB_Frame3D_Single)
      Frame3DGadget(2, 10, 130, 300, 50, "", #PB_Frame3D_Double)
      Frame3DGadget(3, 10, 190, 300, 50, "", #PB_Frame3D_Flat)
   
    Repeat
    Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf 
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

Hallo,
hier die Lösung. Habe nur ein falsches Gadget benutzt.

Code: Alles auswählen

Procedure OpenWindow_Window_0()
  If OpenWindow(#Window_0, 883, 284, 400, 400, #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar, "#Window_0")
    If CreateGadgetList(WindowID(#Window_0))
      Frame3DGadget(#Frame3DGadget_1, 15, 250, 190, 125, "Gadget_1")
      ContainerGadget(#ContainerGadget_0, 55, 35, 290, 280, #PB_Container_Raised)
      CloseGadgetList()
      ; Gadget Colors
      PureCOLOR_SetGadgetColor(#ContainerGadget_0, #PureCOLOR_SystemColor, $FFFF)
      PureCOLOR_SetGadgetColor(#Frame3DGadget_1, #PureCOLOR_SystemColor, $FF)
    EndIf
  EndIf
EndProcedure

PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Antworten