Hallo,
die Rahmen werden nicht gezeichnet, weil du Pen.Style für das Zeichnen des Rechtecks auf den Wert
psClear gesetzt hast. Vielleicht solltest du zunächst die Rahmen zeichnen und danach das Innere mit
FillRect füllen:
Delphi-Quellcode:
procedure TMenuButton.Paint;
var
R: TRect;
ActiveBevel: TBevel;
begin
R := Rect(0, 0, Width, Height);
Canvas.Pen.Style := psSolid;
if Hover
then ActiveBevel := HoverBevel
else ActiveBevel := Bevel;
if (ActiveBevel in [bRaised, bInside]) then
Frame3D (Canvas, R, Highlight, Shadow, BevelWidth);
if (ActiveBevel in [bLowered, bInside]) then
Frame3D (Canvas, R, Shadow, Highlight, BevelWidth);
Canvas.Brush.Color := Color;
Canvas.Brush.Style := bsSolid;
Canvas.FillRect (R);
end;
Gruß Hawkeye