Registriert seit: 28. Okt 2003
Ort: Schwerin
15 Beiträge
Delphi 11 Alexandria
|
AW: BackgroundColor von eigener Klasse weitergeben (ParentColor)
8. Sep 2015, 09:57
Etwas Code hätte ich natürlich mitschicken können, aber ich dachte das könntet ihr mir auch ohne sagen, aber hier der Code:
Delphi-Quellcode:
...
protected
procedure Click; override;
procedure DoEnter; override;
procedure DoExit; override;
procedure KeyPress(var Key: Char); override;
procedure Paint; override;
...
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
...
constructor TMyPanel.Create(AOwner: TComponent);
begin
inherited;
ControlStyle := ControlStyle + [csAcceptsControls] - [csSetCaption] + [csParentBackground];
self.DoubleBuffered := True;
FHover := True;
FMouseOver := False;
FOwner := AOwner;
FBorder := True;
FBorderColor := clGreen;
FBorderColorChecked := clRed;
FBorderColorFocused := clYellow;
FBorderColorHover := clGreen;
FBorderWidth := 1;
FBorderWidthChecked := 1;
FBorderWidthFocused := 1;
FBorderWidthHover := 1;
...
end;
procedure TMyPanel.Paint;
var
r: TRect;
begin
inherited;
if (csDesigning in ComponentState) or (not FMouseOver) then
begin
Canvas.Brush.Style := FBrushStyle;
Canvas.Brush.Color := FPanelColor;
Canvas.Pen.Color := FBorderColor;
Canvas.Pen.Width := FBorderWidth;
end;
case FPanelStyle of
psRect: Canvas.Rectangle(0, 0, Width, Height);
psRoundRect: Canvas.RoundRect(0, 0, Width, Height, FPanelRounding, FPanelRounding);
psCircle: Canvas.Ellipse(FBorderWidth, FBorderWidth, Width, Height);
end;
PaintCaption;
end;
Zu denken, was wir hätten tun können, ist eine Tätigkeit, die uns zu denken geben sollte...
Geändert von Waaaghboss ( 8. Sep 2015 um 11:28 Uhr)
|