Einzelnen Beitrag anzeigen

Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#6

Re: Nichtersteltle Komponente abfragen?

  Alt 20. Apr 2006, 20:58
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 Delphi-Referenz durchsuchenFreeAndNil freizugeben und bei der Ueberpruefung mit nil zu vergleichen.

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat