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 Untergeordnete Komponente aktualisieren (https://www.delphipraxis.net/110311-untergeordnete-komponente-aktualisieren.html)

Mattze 16. Mär 2008 14:53


Untergeordnete Komponente aktualisieren
 
Hallo,

ich habe mir eine Komponente (von TPanel) abgeleitet, auf der (schon zur Designzeit) Buttons für die Laufwerke erzeugt werden. Das isnd spezielle Buttons, die z. B. auch die Hintergrundfarbe zu setzen erlauben.
Beispielfrage:
Ich ändere in einer (neuen) Eigenschaft des abgeleiteten Panels die Farbe, die den Buttons als Hintergrund dienen soll.
Wie erreiche ich nun, das die Buttons diese neue Farbe schon zur Designtime akzeptieren (und anzeigen)? (Zur Runtime tun sie es!) Invalidate oder ähnliches für die Buttons (Unterkomponenten) der Komponente tut es nicht.
Muss man da eine Art ReCreate für die Komponente machen? Und wenn ja, wie?

Gruß
Mattze

mkinzler 16. Mär 2008 14:59

Re: Untergeordnete Komponente aktualisieren
 
Reagiere beim Neuzeichnen des Panels und erzwinge das Neuzeichnen der Buttons bzw. setzte die Farbeigenschaft

sx2008 16. Mär 2008 15:09

Re: Untergeordnete Komponente aktualisieren
 
Normalerweise reagieren Komponenten (spez. Controls) zur Design- und Laufzeit genau gleich!!!
Manchmal ist dies unerwünscht - wenn man Visible auf False setzt, soll das Control zur Designzeit nicht wirklich verschwinden.
Also sind in den Controls Abfragen wie
Delphi-Quellcode:
if csDesigning in ComponentStatus then ...
enthalten.
Du musst jetzt diese Abfragen im Sourcecode suchen und ggf. ausser Kraft setzen oder ihre Wirkung abschwächen indem die IF-Abfrage nach hinten im Sourcecode verschoben wird.

Mattze 16. Mär 2008 16:46

Re: Untergeordnete Komponente aktualisieren
 
Hallo

und Danke für die schnelle Antwort.

Das ist es aber leider nicht. Damit arbeite ich schon eine ganze Weile, wenn es nötig ist. Ich kenne das also.
In dieser Komponente habe ich keine derartigen Dinge drin. Es sei denn, im ursprünglichen Panel, von dem ja meine Komponente abgeleitet ist.

Ich habe übrigens gerade gemerkt, dass das auch in der Runtime nur halbwegs funktioniert. Allerdings dürfte das einen anderen Hintergrund haben und da werde ich noch suchen...

Ein anderes Problem, das wahrscheinlich genau auf den Componentstate in TPanel zurückzuführen ist:
Ich kann die Caption im abgeleiteten create nicht überschreiben.
Aber, ich spiele weiter...

Gruß
Mattze


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz