![]() |
Nicht erstellle Komponente abfragen?
Mal ne Frage grundsätzlich, ich erstelle zur Laufzeit ne Komponente, die immer mah wieder gelöscht und erstellt wird.
Wie kann ich zur Laufzeit abfragen, ob diese Komponente überhaupt existiert? |
Re: Nichtersteltle Komponente abfragen?
Form.FindComponent('<komponame>');
|
Re: Nichtersteltle Komponente abfragen?
Zitat:
Mein Tip ist, alle Objekte ueber ![]()
Delphi-Quellcode:
greetz
FreeAndNil(MyComponent);
//... if (MyComponent <> nil) then MyComponent.DoSomething() else //blubb Mike |
Re: Nicht erstellle Komponente abfragen?
Danke erst mah echt nett ich glaub das geht bei mir nicht.
Um mah eh bissl genauer zu werden ich will vor meine Abfrage ne if abfrage platztieren. Ob die Komponente exitiert(True) oder nicht(False).Mehr möchte ich gar ni wissen. |
Re: Nichtersteltle Komponente abfragen?
Zitat:
Delphi-Quellcode:
?
Form.FindComponent(MyKomponent.Name)
|
Re: Nichtersteltle Komponente abfragen?
Zitat:
(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 ![]() greetz Mike |
Re: Nicht erstellle Komponente abfragen?
Wie wärs mal mit
Delphi-Quellcode:
if assigned(MyComponent) then ...
|
Re: Nicht erstellle Komponente abfragen?
Dürft nix bringen, weil Assigned meines Wissens nach nur kontrolliert, ob der Zeiger auf einen Speicherbereich zeigt,
also im Ende nix anderes als (Zeiger<> nil) mfG Markus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 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-2025 by Thomas Breitkreuz