Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TPaintBox auf änderung von FColor reagieren (https://www.delphipraxis.net/103198-tpaintbox-auf-aenderung-von-fcolor-reagieren.html)

Thorben_Ko 12. Nov 2007 11:48


TPaintBox auf änderung von FColor reagieren
 
Hallo

ich habe eine Komponente abgeleitet von TPaintBox. Wenn man die Farbe änder muss drauf reagiert werden. Einfach die Methode SetColor zu überschreiben scheint nicht zu gehen. Ohne ovverride geht geht.

Delphi-Quellcode:
procedure TFarbFeld.SetColor(const Value: TColor);
begin
  color := Value;
  FieldsCreate;
  Paint;
end;
Ich kann das projekt auch erzeugen und die komponente auch installieren. Sobald ich aber die farbe nun ändern will schmiert mein Delphi ohne fehler meldung ab.

Weiss jemand rat?

Danke schon mal.

Gruss Thorben

berens 12. Nov 2007 11:55

Re: TPaintBox auf änderung von FColor reagieren
 
Tjo, ansich müsstest du wohl einen Stack-Überlauf bekommen. Wenn du Color := Value ausführst, wird ja auch wieder Setcolor aufgerufen!

Versuche mal
Delphi-Quellcode:
  inherited Color := Value;

Deep-Sea 12. Nov 2007 11:55

Re: TPaintBox auf änderung von FColor reagieren
 
Zitat:

Zitat von Thorben_Ko
Delphi-Quellcode:
procedure TFarbFeld.SetColor(const Value: TColor);
begin
  color := Value;
  FieldsCreate;
  Invalidate; // << Bitte so ... wenn schon ...
end;


Thorben_Ko 12. Nov 2007 12:15

Re: TPaintBox auf änderung von FColor reagieren
 
Zitat:

Zitat von berens
Tjo, ansich müsstest du wohl einen Stack-Überlauf bekommen. Wenn du Color := Value ausführst, wird ja auch wieder Setcolor aufgerufen!

Versuche mal
Delphi-Quellcode:
  inherited Color := Value;

Super danke hat geklappt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 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-2025 by Thomas Breitkreuz