Hey Delle,
Diese Funktion ist in PB nicht grundlos ausgeschaltet - da das collorieren von Buttons auch in der WinAPI AFAIK (!) nicht ohne weiteres moeglich ist.
Ich habe hier zwei Funktionen geschrieben, die das collorieren von Button Gadgets ermoeglicht (durch einen kleinen Trick, siehs dir einfach an

)
Code: Alles auswählen
Procedure CreateColoredButton(Gadget, text$, x, y, width, height, FrontColor, BackColor)
newimage = CreateImage(#PB_Any, width, height)
StartDrawing(ImageOutput(newimage))
Box(0, 0, width, height, BackColor)
If TextWidth(text$) > width Or TextHeight(text$) > height
ProcedureReturn 0
EndIf
newx = (width - TextWidth(text$)) / 2
newy = (height - TextHeight(text$)) / 2
DrawText(newx, newy, text$, FrontColor, BackColor)
StopDrawing()
ButtonImageGadget(Gadget, x, y, width, height, ImageID(newimage))
EndProcedure
Procedure SetColorAndTextOfAButton(Gadget, text$, FrontColor, BackColor)
width = GadgetWidth(Gadget)
height = GadgetHeight(Gadget)
newimage = CreateImage(#PB_Any, width, height)
StartDrawing(ImageOutput(newimage))
Box(0, 0, ImageWidth(newimage), ImageHeight(newimage), BackColor)
If TextWidth(text$) > width Or TextHeight(text$) > height
ProcedureReturn 0
EndIf
newx = (width - TextWidth(text$)) / 2
newy = (height - TextHeight(text$)) / 2
DrawText(newx, newy, text$, FrontColor, BackColor)
StopDrawing()
SetGadgetAttribute(Gadget, #PB_Button_Image, ImageID(newimage))
EndProcedure
OpenWindow(0, 0, 0, 200, 200, "Farbige Buttons", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
CreateColoredButton(0, "Klick mich!", 20, 20, 100, 30, 0, RGB(255, 0, 0))
Repeat
EventID = WindowEvent()
If EventID = #PB_Event_CloseWindow
End
ElseIf EventID = #PB_Event_Gadget
If EventGadget() = 0
SetColorAndTextOfAButton(0, "Werde Gruen!", 0, RGB(0, 255, 0))
EndIf
EndIf
ForEver
Der Text im Gadget wird automatisch zentriert. Wenn der Text aber groesser sein sollte, als das Gadget, dann wird das Gadget gar nicht erst erstellt - also immer erst pruefen
Mit SetColorAndTextOfAButton kannst du Farbe und Text eines Gadgets aendern, welches du zuvor mit CreateColoredButton() (oder auch ButtonImageGadget()) erstellt hast. Mit "normalen" Buttongadgets geht das aber nicht
Du kannst meine Funktionen natuerlich noch selbst etwas bei Bedarf bearbeiten - Fonts einfuegen, Zeilenumbruch ermoeglichen und und und