Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Schleife für aufsteigende Arraynamen (https://www.delphipraxis.net/158492-schleife-fuer-aufsteigende-arraynamen.html)

xxsasch4xx 19. Feb 2011 17:28

Schleife für aufsteigende Arraynamen
 
ich würde gerne 20 arrays die unterschiedliche zahlen am ende haben werte von true zuweissen

die arrays sind global so deklariert:
Delphi-Quellcode:
name1 :array [1..20] of boolean;
name2 :array [1..20] of boolean;
...
bis
name20:array[1..20] of boolean;
 // kann man die deklaration von 20 arrays auf einmal auch optimieren?
1. Möglichkeit:

Delphi-Quellcode:
var i:integer;
begin
  for i :=1 to 20 do
  'name'+inttostr(i)[i]:=true;
2. Möglichkeit:
Delphi-Quellcode:
var i:integer;
begin
  for i :=1 to 20 do
  TArray(form1.FindComponent('name'+IntToStr(i)[i])):=True;
//so ging das immer bei image bildern aber hier wird es wohl nicht funktionieren oder?

er soll also sozusagen von array1[1] bis array20[20]
auf einen schlag alles true setzen

patti 19. Feb 2011 17:36

AW: Schleife für aufsteigende Arraynamen
 
Warum nimmst du keine zwei-dimensionalen Arrays?

Delphi-Quellcode:
ar : array[1..20] of array[1..20] of boolean;

xxsasch4xx 19. Feb 2011 17:37

AW: Schleife für aufsteigende Arraynamen
 
also ich meine es so, dass man die zahl von dem namen am ende vom array auch mit verändert..

name1[1]

rollstuhlfahrer 19. Feb 2011 17:37

AW: Schleife für aufsteigende Arraynamen
 
so einfach geht das nicht. Du kannst keine Variable per Name aufrufen. Du kannst aber aus deinen 20 Variablen des gleichen Typs ein einziges Array machen (Name: array[1..20, 1..20] of Boolean) und dann kannst du dieses Array durchlaufen. Alternativ kannst du auch per FillChar(@Name, SizeOf(Name), #1) allen Teilen TRUE zuweisen.

Bernhard

patti 19. Feb 2011 17:39

AW: Schleife für aufsteigende Arraynamen
 
Zitat:

Zitat von xxsasch4xx (Beitrag 1082915)
also ich meine es so, dass man die zahl von dem namen am ende vom array auch mit verändert..

name1[1]

Genau das lässt sich eben mit zwei-dimensionalen Arrays erledigen:

Delphi-Quellcode:
for x := 1 to 20 do
  for y := 1 to 20 do
    ar[x,y] := true;


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:10 Uhr.

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