Einzelnen Beitrag anzeigen

Benutzerbild von Waaaghboss
Waaaghboss

Registriert seit: 28. Okt 2003
Ort: Schwerin
15 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: BackgroundColor von eigener Klasse weitergeben (ParentColor)

  Alt 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)
  Mit Zitat antworten Zitat