Zitat von
xZise:
Zitat von
JasonDX:
Zitat von
mkinzler:
Form.FindComponent('<komponame>');
Dies funktioniert nur, wenn ich auch der Komponente auch ein Name zugewiesen wird, was nicht zwingend der Fall sein muss (gerade weil sie dynamisch erstellt wird
)
Vielleicht löst es durch:
Form.FindComponent(MyKomponent.Name)
Oehm, das is ja genau der Punkt: Ich weiss ja nicht, obs MyComponent noch gibt, also kann ich mir nicht sichersein, dass das funktioniert
(ich weiss jetzt nicht genau, was bei TComponent(nil).Name passiert, aber ich kann mir vorstellen, dasses nix gutes is
)
weiters is mir bei der Methode noch eingefallen: In der Situation
muss die Komponente das Formular als Owner eingetragen haben. Wenn die Komponente bspw. auf einem anderen Formular oder einem Frame liegt, ist das nicht der Fall. Natuerlich koennte man das dann mit
MyComponent.Owner.FindComponent(MyComponent.Name) <> nil ueberpruefen, fuer eine nutzbare Methode halte ich das allerdings nicht, denn: Ich weiss nicht, ob die Komponente existiert, aber ich verwend ihre Eigenschaften und Methoden ums rauszufinden...
Wie gesagt: IMO ist es die sauberste Loesung, die Instanz mit
FreeAndNil freizugeben und bei der Ueberpruefung mit nil zu vergleichen.
greetz
Mike