Einzelnen Beitrag anzeigen

BRobby

Registriert seit: 30. Dez 2004
Ort: Bottrop
30 Beiträge
 
Delphi 12 Athens
 
#1

FillRect zeichnet keinen Hintergrund

  Alt 17. Mär 2025, 16:09
Hallo zusammen,

ich möchte für eine von TPanel abgeleitete Komponente den Hintergrund zeichnen. Siehe angefügten Quelltext. Die Ränder werden wie erwartet richtig gezeichnet, der Hintergrund bleibt weiß.
Habe alles mögliche versucht, der Hintergrund wird nicht farbig. Kann da jemand helfen?

Delphi-Quellcode:

TFarbQuadrat = class(TPanel)
  private
    FColor: TAlphaColor;

  protected
    procedure SetColor(aColor: TAlphaColor);
    procedure Paint; override;
    procedure Click; override;

  public
    constructor Create(aOwner : TComponent); override;
    destructor Destroy; override;

    property Color: TAlphaColor read FColor write SetColor;
  end;


procedure TFarbQuadrat.Paint;
begin
  inherited;
  Canvas.BeginScene;
  // Hintergrund malen
  Canvas.Fill.Kind := TBrushKind.Solid;
  Canvas.Fill.Color := Color;
  Canvas.FillRect(LocalRect, 1);
  Canvas.EndScene;

  Canvas.BeginScene;
  // Rahmen malen
  Canvas.Stroke.Kind := TBrushKind.Solid;
  Canvas.Stroke.Color := claBlack;
  if IsFocused
    then begin Canvas.Stroke.Thickness:=3; end
    else begin Canvas.Stroke.Thickness:=1; end;
  Canvas.DrawRect(LocalRect, 1);

  Canvas.EndScene;
end;

Geändert von BRobby (17. Mär 2025 um 16:22 Uhr) Grund: letzte Zeile fehlt
  Mit Zitat antworten Zitat