Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Auf ein Komponente aus dem Programm zugreifen?


cyclone - Fr 23.08.02 13:57
Titel: Auf ein Komponente aus dem Programm zugreifen?
wenn ich ein Komponente aus dem programm raus erstelle wie kann ich dann später in anderen proceduren wieder darauf zugreifen?
Beispiel:

Quelltext
1:
2:
3:
4:
5:
6:
var
Edit: TEdit;
begin
  Edit := TEdit.Create(self);
  Edit.Parent := Form1;
end;


Nur will ich z.b. den Text in der vorher erstellten komponente ändern...
Ich hab schon ausprobier: Edit.Text := 'Hallo!' aber das tut es nicht...

Wie kann ich das realisieren?

Danke im Voraus! ;)


ao - Fr 23.08.02 14:02

Hallo cyclone,

du musst deiner Komponente noch einen Namen zuweisen.

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var 
Edit: TEdit; 
begin 
  Edit := TEdit.Create(self); 
  Edit.Parent := Form1;
  Edit.Name := 'MeinEdit';
  Edit.Text := ''; //weil sonst standardmäßig "MeinEdit" im Text steht.
end;

Dann kannst du auch aus anderen Prozeduren auf die Komponente zugreifen.MeinEdit.Text := 'Hello World';

Gruß
Andreas


cyclone - Fr 23.08.02 14:16

der compiler sagt mir bei:

Quelltext
1:
MeinEdit.Text := 'Hallo';                    

"Unbekannte Bezeichnung: MeinEdit"...
Aber ich hab das jetzt so gelöst

Quelltext
1:
TEdit(FindComponent('MeinEdit')).Text := 'Hallo!';                    


Das funzt ist aber ein wenig umständlich ;)


ao - Fr 23.08.02 14:34

Stimmt, natürlich muss es so gemacht werden! War ich wohl ein bisschen zu schnell! :oops:

Andreas


Renegade - Fr 23.08.02 15:16

Moin erstmal!

Wenn du das edit global deklarierst, dann kannst du mit

Quelltext
1:
Edit.Text:='Hallo';                    

auf die Kompo zugreifen.

Gruß Renegade