Ich leite TButton ab und überschreibe "Paint".
Delphi-Quellcode:
type
TMyButton = class(TButton)
...
protected
procedure Paint; override;
...
procedure TMyButton.Paint;
var
iSave : TCanvasSaveState;
begin
{ Ererbte Eigenschaften }
inherited Paint;
{ Einstellungen speichern }
iSave := Canvas.SaveState;
{ Ausgaben deaktivieren }
Canvas.BeginScene;
{ Eigener Hintergrund }
Canvas.Fill.Kind := TBrushKind.Solid;
Canvas.Fill.Color := TAlphaColorRec.Blue;
Canvas.FillRect(LocalRect,0,0,[],1);
{ Ausgaben aktivieren }
Canvas.EndScene;
{ Zurücksetzen }
Canvas.RestoreState(iSave);
end;