003
09.10.2006, 16:24 Uhr
Th
|
Hi,
was ich meinte, war, ob die Komponente "Form->Components[i]" wirklich vom Typ "TControl" ist, denn es gibt auch Komponenten, wie z.B. die OpenFile und SaveFile Dialoge, welche zwar von TComponent abgeleitet sind, aber keine TControls sind.
z.B. so etwas:
C++: |
for(int i=0; i<ComponentCount; i++) { TComponent *comp = Components[i]; TControl *ctrl = dynamic_cast<TControl *>(comp); if (ctrl != NULL) // test, ob es sich um ein Control handelt { // ctrl->Caption = "Hello"; <--- dies geht nicht direkt, da Caption protected ist!!! }
TLabel *label = dynamic_cast<TLabel *>(comp) if(label != NULL) label->Caption = "Hallo"; <-- aber dies funktioniert!!!
//... dasselbe dann für alle weiteren Controls }
|
Ich habe jetzt "dynamic_cast" statt "InheritsFrom" verwendet, aber beides funktioniert (du mußt bei "dynamic_cast" aber RTTI (Runtime Type Informations) im Projekt aktiviert haben). |