Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Komponente über Ihren Namen ansprechen (https://www.delphipraxis.net/13320-komponente-ueber-ihren-namen-ansprechen.html)

BenjaminHelbig 16. Dez 2003 10:30


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

OLLI_T 16. Dez 2003 11:09

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:
form2.FindComponent('Edit1');
Viele Grüsse

OLLI


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz