![]() |
Eigenschaft aller Formulare ändern zur Laufzeit
Hallo,
Ich habe bei mir in einem eigenen Formular, von dem alle meine anderen Formulare erben, eine Statusbar. Kann man während der Laufzeit z.B. einen Text in einer Statusbar ändern, so dass sich das auf alle geerbten Formulare sofort auswirkt? Ist das mit Frames realisierbar und wenn dann wie? |
Re: Eigenschaft aller Formulare ändern zur Laufzeit
Hallo,
Ich würde so vorgehen: :arrow: Application.Components mit einer Schleife durchlaufen :arrow: Gucken ob Application.Components[i] die entsprechende Klasse besitzt/von ihr erbt (=> Der is-Operator) :arrow: Wenn ja, dann Application.Components[i] auf diese Klasse casten und Statusbar.Text auf den gewünschten Wert setzen Gruß Neutral General |
Re: Eigenschaft aller Formulare ändern zur Laufzeit
Oder man verpaßt dem Basisformular eine Funktion "ÄndereStatusbarText" geht alle Frames durch, schaut ob die Formulare/Frames von diesem Basisformular abstammen und wenn ja, dann castet man den Frame auf das Basisformular und ruft diese Funktion auf.
Die abgeleiteten Formulare/Frames könnte diese "virtuelle" Prozedur ja überschreiben und darin auf ihre eigene Statusbar weiterleiten. |
Re: Eigenschaft aller Formulare ändern zur Laufzeit
Das ist mir momentan zu viel Aufwand. Muss mir nochmal Gedanken machen, ob sich das wirklich lohnt.
Ist es auch möglich während der Laufzeit die Farbe des Hauptforms zu ändern, so daß die Erben dann beim Öffnen diese Farbe besitzen? |
Re: Eigenschaft aller Formulare ändern zur Laufzeit
Och, es hört sich alles vielleicht viel/umständlich an, aber isses eigentlich nicht,
Zitat:
Ob nun Komponente+Text oder Komponente+Farbe ist ja egal. Alternativ könnte man eventuell noch die Farbe im Constructor mitgeben. |
Re: Eigenschaft aller Formulare ändern zur Laufzeit
Delphi-Quellcode:
TBasisfrm = class(TBasisForm)
... procedure FormShow(Sender: TObject); override; protected farbe : TColor; // in Basisform farbe deklarieren end;
Delphi-Quellcode:
Mehr ist das nicht, oder doch ? :gruebel: Ich gehe davon aus, dass während des Programmlaufs durch irgendwas die Farbe verändert wird. Ab dann gilt für neu zu öffnende Forms diese Farbe.
procedure TBasisfrm2.FormShow(Sender: TObject);
begin inherited; Color := farbe; end; |
Re: Eigenschaft aller Formulare ändern zur Laufzeit
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 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