wieso kann man den Hintergrund eines Buttons nicht einfärben,
die anderen ganzen (unwichtigen) Gadgets aber schon?
Verstehe nicht, warum ausgerechnet der Button ausgelassen
wurde.
Jetzt muss ja doch wieder PureCOLOR herhalten

Eine Userlib braucht es nicht, denn für diesen Zweck (frei nach bobobo)Kaeru Gaman hat geschrieben:ich benutze keine Userlibs.
Die Idee ButtonImageGadget´s zu verwenden, wurde schon von vielen Foren-Autoren praktiziert und funktioniert ausgezeichnet. Beispiel:gibt es dafür eigentlich extra die ImageKnöppe.
Code: Alles auswählen
;- Beginn
Enumeration
#Window_0 : #Button_0 : #Button_1 : #Button_2 : #Button_3 : #Button_4
#Gadget_5 : #Gadget_6 : #Gadget_7 : #Shortcut_0 : #Shortcut_1
EndEnumeration
#ButtonStart = 99
Enumeration #ButtonStart + 1
#Knopf_0 : #Knopf_1 : #Knopf_2 : #Knopf_3
EndEnumeration
gold = RGB(255,215,0) : forest = RGB(34,139,34) : royal = RGB(60, 150, 200)
kingblue = RGB(60,15,255) : orange = RGB(205,133,0) : pink = RGB(139,10,80)
chartreuse = RGB(127,255,0) : gelb = RGB(253,250,150) : roetlich = RGB(255,48,48)
;- Prozeduren
Procedure.l MyLabeledImage(ImageNumber,width,height,Color,Datei$,Schrift)
ImageID = CreateImage(ImageNumber,width,height)
If StartDrawing(ImageOutput(ImageNumber)) : Box(0,0,width,height,Color)
Select Schrift ; Anzahl der Schriften kann vergrößert werden
Case 0 : FrontColor(RGB(255,215,0))
Case 1 : FrontColor(RGB(255,48,48))
Case 2 : FrontColor(RGB(0,0,51))
Case 3 : FrontColor(RGB(128,0,0))
Case 4 : FrontColor(RGB(34,139,34))
Case 5 : FrontColor(RGB(60,150,200))
Case 6 : FrontColor(RGB(255,255,255))
Case 7 : FrontColor(RGB(139,10,80))
Case 8 : FrontColor(RGB(60,15,255))
EndSelect
DrawingFont(#PB_Default) : DrawingMode(1)
If TextWidth(Datei$) < width : XPos = (width - TextWidth(Datei$)) / 2
Else : XPos = 4
EndIf
If TextWidth("M") < height : YPos = (height - TextWidth("M")) / 2 - 2
Else : YPos = 0
EndIf : DrawText(XPos,YPos,Datei$) : StopDrawing()
EndIf
ProcedureReturn ImageID
EndProcedure
Procedure ColoredButton(Nb,x,y,w,h,Datei$,ImageNumber,Color,i)
ButtonImageGadget(Nb,x,y,w,h,MyLabeledImage(ImageNumber,w,h,Color,Datei$,i))
EndProcedure
;- Main
hwnd = OpenWindow(#Window_0,0,0,200,250,"DefaultButton",#PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
If hwnd And CreateGadgetList(hwnd)
brush.l = CreateSolidBrush_(royal)
SetClassLong_(hwnd,#GCL_HBRBACKGROUND,brush)
; ColoredButton(#Gadget, x, y, Breite, Hoehe, ImageID, Hintergrundfarbe, Schriftfarbe)
; ImageID braucht eine eigene ID (!), kann z. B. mit 1,2,3, ... usw.
; oder wie hier mit eigenen Konstanten (!) numeriert werden
ColoredButton(#Button_0,5, 5,190,25,"Button_0",#Knopf_0,orange,7)
ColoredButton(#Button_1,5,32,190,25,"Button_1",#Knopf_1,kingblue,4)
ColoredButton(#Button_2,5,59,190,25,"Button_2",#Knopf_2,forest,2)
ColoredButton(#Button_3,5,86,190,25,"Schließen (3)",4,gold,1)
ColoredButton(#Button_4,45,113,120,25,"Button_4",#Knopf_3,chartreuse,5)
StringGadget(#Gadget_5 ,5,140,190,20," StringGadget 5")
TextGadget(#Gadget_6 ,5,162,190,20," TextGadget 6")
ListViewGadget(#Gadget_7,5,184,190,65)
AddGadgetItem(#Gadget_7, -1, "Das ist ListViewGadget 7")
SetGadgetColor(#Gadget_5, #PB_Gadget_FrontColor, royal)
SetGadgetColor(#Gadget_5, #PB_Gadget_BackColor, gold)
SetGadgetColor(#Gadget_6, #PB_Gadget_FrontColor, pink)
SetGadgetColor(#Gadget_6, #PB_Gadget_BackColor, chartreuse)
SetGadgetColor(#Gadget_7, #PB_Gadget_FrontColor, kingblue)
SetGadgetColor(#Gadget_7, #PB_Gadget_BackColor, gelb)
SetActiveGadget(#Button_0)
AddKeyboardShortcut(#Window_0,#PB_Shortcut_Return,#Shortcut_0)
AddKeyboardShortcut(#Window_0,#PB_Shortcut_Escape,#Shortcut_1)
Repeat
event.l = WaitWindowEvent() : EventType.l = EventType()
Tastendr.l = EventGadget()
Select event
Case #PB_Event_Menu
Select EventMenu()
Case #Shortcut_0 ; Return
AddGadgetItem(#Gadget_7,-1,"<Return> gedrückt")
Case #Shortcut_1 : event = #PB_Event_CloseWindow ; Escape
EndSelect
EventType = #PB_EventType_LeftClick
EndSelect
If EventType = #PB_EventType_LeftClick
Select Tastendr
Case #Button_0
SetGadgetText(#Gadget_5,"Konstante "+Str(#Button_0))
SetGadgetText(#Gadget_6,"EventGadget "+Str(Tastendr))
AddGadgetItem(#Gadget_7,-1,"Button 0 gedrückt")
Case #Button_1
SetGadgetText(#Gadget_5,"Konstante "+Str(#Button_1))
SetGadgetText(#Gadget_6,"EventGadget "+Str(Tastendr))
AddGadgetItem(#Gadget_7,-1,"Button 1 gedrückt")
Case #Button_2
SetGadgetText(#Gadget_5,"Konstante "+Str(#Button_2))
SetGadgetText(#Gadget_6,"EventGadget "+Str(Tastendr))
AddGadgetItem(#Gadget_7,-1,"Button 2 gedrückt")
Case #Button_3 : event = #PB_Event_CloseWindow
Case #Button_4
SetGadgetText(#Gadget_5,"Pressed: 4")
SetGadgetText(#Gadget_6,"Gedrückt: 4")
AddGadgetItem(#Gadget_7,-1,"Button 4 gedrückt")
EndSelect
EndIf : Delay(15)
Until event = #PB_Event_CloseWindow
EndIf
;- Ende
End