![]() |
Komponente über Ihren Namen ansprechen
Hi Leute,
ich habe folgendes Problem: Ich habe eine ListView in welcher die Namen der von mir benutzten Komponenten drinstehen. Also z.B.: Edit1, Edit2, Edit3, usw. Jetzt möchte ich aus Form1 aus auf die Komponente Edit1 aus Form2 zugreifen, aber nicht über Form2.Edit1.Text := 'blabla'; sondern über FindComponent. Aber ich habe FindComponent nur so zum Einsatz bewegen können, dass es meine Komponenten unter Form1 gefunden hat, aber nicht unter Form2. Hat jemand eine Idee wie ich des machen könnte? Habe es auch mit einer Variablen die Typ TObject deklariert ist versucht. Aber ich kann keine Strings in TObject umwandeln. Mein Versuch war: procedure Irgendeinbutton var tmp : TObject begin tmp := 'Form2.' + ListView1.Items[0].Caption as TEdit; end; Da bringt er mir leider nur die Meldung, dass der Operator nicht auf diesen Operantentyp anwendbar ist. Wäre schön wenn jemand von Euch ne Idee hat. Greets Ben |
Re: Komponente über Ihren Namen ansprechen
Hallo Benjamin!
FindComponent ohne Objektvariable aufgerufen bezieht sich auf die Instanz der Klasse, aus der heraus die Methode aufgerufen wird. Man könnte auch schreiben: Self.FindComponent. Möchtest Du nun eine Kompenente in Form2 suchen, so musst Du auch die Methode für Form2 aufrufen:
Delphi-Quellcode:
Viele Grüsse
form2.FindComponent('Edit1');
OLLI |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 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