Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9
  Alt 23. Nov 2002, 14:02
Moin Salomon,

das Problem wird schlicht sein, dass FindComponent eine Methode ist, über die jede Container Komponente (z.B. TForm, TPanel) verfügt.
Dadurch, dass Du nicht angegeben hast, von welcher Kompo Du FindComponent benutzen willst, bezieht sich der Aufruf auf die Komponente, in dessen Methode Du sie aufgerufen hast. Indirekt wird der Aufruf zu self.FindComponent umgewandelt.
Deshalb meckert der Compiler auch nicht, er kann ja nicht "wissen", dass Du die Komponenten eines anderen Containers suchst.

Wenn es bei Dir also (z.B.) heisst:

Delphi-Quellcode:
procedure TForm1.FormCreate...

for i := 1 to 8 do
    Tlabel(FindComponent('rellabel'+IntToStr(i))).Caption := TEdit(FindComponent('progconfig.relname'+IntToStr(i))).Text;
versteht der Compiler das als

Delphi-Quellcode:
procedure TForm1.FormCreate...

for i := 1 to 8 do
    Tlabel(Form1.FindComponent('rellabel'+IntToStr(i))).Caption := TEdit(Form1.FindComponent('progconfig.relname'+IntToStr(i))).Text;
Wenn Du es so abwandelst müsste es funktionieren

Delphi-Quellcode:
procedure TForm1.FormCreate...

for i := 1 to 8 do
    Tlabel([color=red]Form2[/color].FindComponent('rellabel'+IntToStr(i))).Caption := TEdit([color=red]Form2[/color].FindComponent('progconfig.relname'+IntToStr(i))).Text;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat