AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FillRect zeichnet keinen Hintergrund

Ein Thema von BRobby · begonnen am 17. Mär 2025 · letzter Beitrag vom 17. Mär 2025
Antwort Antwort
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
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
321 Beiträge
 
Delphi 12 Athens
 
#2

AW: FillRect zeichnet keinen Hintergrund

  Alt 17. Mär 2025, 16:12
Gibt es einen VCL-Style, der reinpfuschen könnte? (In dem Fall müsste man seClient aus TPanel.StyleElements rausnehmen)
  Mit Zitat antworten Zitat
BRobby

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

AW: FillRect zeichnet keinen Hintergrund

  Alt 17. Mär 2025, 16:17
???
Verstehe ich nicht.
Es handelt sich um ein FMX-Programm.

Den Constructor (Testversion) habe ich hier:

Delphi-Quellcode:
constructor TFarbQuadrat.Create(aOwner : TComponent);
begin
  inherited Create(aOwner);
  Color:= TAlphaColorRec.DarkGray;
  CanFocus:=True;
  Size.Width:=20+20; Size.Height:=20+20;
  StyleLookup:='';
  Opacity:=1;
  Visible:=True;
  Enabled:=True;
end;
  Mit Zitat antworten Zitat
AuronTLG

Registriert seit: 2. Mai 2018
Ort: Marburg
321 Beiträge
 
Delphi 12 Athens
 
#4

AW: FillRect zeichnet keinen Hintergrund

  Alt 17. Mär 2025, 16:47
Hm, auf FMX ist das Komponentenfarben ändern ohne die Verwendung von Stylebooks etwas problematisch.
Ich kann dir nicht garantieren, dass es nicht auch noch andere Möglichkeiten gibt und ich kenne den genauen Anwendungsfall nicht, aber die einfachste Variante zum Setzen von Hintergrundfarben ohne Stylebooks ist das TRectangle.

Das TRectangle verhält sich mehr oder weniger wie ein Panel, man kann dem Teil aber direkt die Hintergrundfarbe über TRectangle.Fill.Color einstellen.
Die Namensgebung deiner Klasse "TFarbQuadrat" impliziert zumindest, dass das TRectangle evtl genau das sein könnte, was haben willst.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz