![]() |
FindComponent in initialization
Hi
Im initialization Teil einer Unit soll festgestellt werden können, ob auf der Form eine bestimmte Komponente vorhanden ist (resp sein wird) Natürlich funktioniert FindComponent() nicht, da die Komponente noch nicht erzeugt wurde. Wie kann ich also überprüfen, ob die Komponente TMyControl auf dem Form erstellt wird? Muss man da auf die dfm Ressource zugreifen oder geht das auch anders?
Delphi-Quellcode:
initialization
if Screen.FindComponent('TMyControl') = nil then begin ShowMessage('TMyControl'); end; |
Re: FindComponent in initialization
Das macht irgendwie gar keinen Sinn.
Lass dir doch im TMyControl-Konstruktur den Owner übergeben und mache diesen Test dann im Konstruktur. Der Initialization-Teil ist für andere Dinge gedacht. |
Re: FindComponent in initialization
Zitat:
Eine Komponente1 soll eine andere Komponente2 erzeugen, falls sich diese nicht auf dem Formular befindet. Wenn also Komponente2 schon auf dem Formular ist, erzeugt Komponente1 die Komponente2 nicht. Die Problematik ist, dass Komponente1 je nach dem vor Komponente2 erzeugt wird. So weiß Komponente1 nichts von einer möglichen Existenz von Komponente2, da diese erst später erzeugt wird. |
Re: FindComponent in initialization
Hallo,
entweder du änderst die Erzeugungs-Reihenfolge, oder du rufst im FormActivate eine Methode auf, die den Test macht. Ob folgende Methode klappt, musst du mal testen. Jedes Control hat eine virtuelle Loaded-Methode. die wird aufgerufen, nachdem das Control erstellt wurde. Vielleicht hat ja auch das TForm sowas ? Heiko |
Re: FindComponent in initialization
Zitat:
|
Re: FindComponent in initialization
Zitat:
Und ich glaube du machst es dir zu einfach. Stell dir mal vor, ich erzeuge Komponente1 zweimal. Was machst du dann? Also du must noch mehr Helligkeit in diese Dunkelheit bringen, sonst kann man dir wirklich nicht helfen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:24 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