Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Variabel in Aufruf (https://www.delphipraxis.net/101127-variabel-aufruf.html)

Banetel.eu 8. Okt 2007 20:01


Variabel in Aufruf
 
Ist wahrscheinlich ein Anfängerproblem aber ich habe bis jetzt auch noch nichts dazu hier gefunden.

Undzwar geht es darum, das ich eine Variabel in einen Aufruf brauche um nicht alles duzend mal zu kopieren und immer nur eine Zahl ändere.


Also hier mal den Code wie ich ihn mir vorstellen (so geht er natürlich nicht).
Ich hoffe dafür gibt es eine Lösung.
Delphi-Quellcode:
for I1 := 0 to 3 - 1 do begin
Mannschaft{I1}.name         := Edit{I1}_Mann.Text;
Mannschaft{I1}.trainer.name := Edit{I1}_Trainer.Text;
  for I := 0 to 11 do with mannschaft{I1}.spieler[I] do begin
    name           :=  Edit{I1}_Spieler.{I}.Text;
    alter          :=  20;
    bundesligatore :=  0;
    nationalspieler :=  false;
    gehalt         :=  1000;
  end;
end;
Wie man schon sieht müsste ich wenn so oder so ähnlich nicht geht 3 * 11 + 3 * 2 fast identische Zuweisungen machen wo ja nur die Zahlen 1-3 bzw. 1-11 anders sind machen :gruebel:

MfG

Matze 8. Okt 2007 20:19

Re: Variabel in Aufruf
 
Hallo, herzlich Willkommen!

Zugegeben, ganz habe ich deinen Code nicht nachvollziehen können.

Zitat:

Zitat von Banetel.eu
Delphi-Quellcode:
Mannschaft{I1}.name ...
Mannschaft{I1}.trainer.name ...

Hierfür könntest du ein Array nutzen, das aus Records besteht.

Zitat:

Zitat von Banetel.eu
Delphi-Quellcode:
... Edit{I1}_Spieler.{I}.Text;

Um auf Komponenten zugreifen zu können, dessen Namen sich nur in einer fortlaufenden Zahl zu unterscheiden, kannst du Hier im Forum suchenFindComponent nutzen. Was du allerdings mit .{i}. meinst, weiß ich nicht.

Gruß

Banetel.eu 8. Okt 2007 20:24

Re: Variabel in Aufruf
 
// EDIT


So habe es geschaft

Delphi-Quellcode:
for S := 1 to 4 - 1 do begin
 Mannschaft[S].name         := TEdit(findcomponent('Edit_Mann_' + inttostr(S))).Text ;
 Mannschaft[S].trainer.name := TEdit(findcomponent('Edit_Trainer_' + inttostr(S))).Text ;
   for I := 1 to 11 do begin
     mannschaft[S].spieler[I].name           := TEdit(findcomponent('Edit_Spieler'+inttostr(S)+'_' + inttostr(I))).Text ;
     mannschaft[S].spieler[I].alter          :=  20;
     mannschaft[S].spieler[I].bundesligatore :=  0;
     mannschaft[S].spieler[I].nationalspieler :=  false;
     mannschaft[S].spieler[I].gehalt         :=  1000;
   end;
end;

:dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 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