![]() |
Mehrdimensionale Dynamische Arrays
Hallo!
Kann mir einer sagen, wie ich ein mehrdimensionales Dynamisches Array dierekt deklarieren kann, d.h. ich will nicht
Delphi-Quellcode:
schreiben sondern alles mit einem Array erledigen, so wie bei den normalen Arrays mit
array of array of integer
Delphi-Quellcode:
array [0..1,0..1] of integer
|
Re: Mehrdimensionale Dynamische Arrays
:wiejetzt:
Was willst du tun? Ein dynamisches Array, das aber deklariert wird wie ein statisches? |
Re: Mehrdimensionale Dynamische Arrays
Ich glaube er will ein mehrdimensionales dynamisches Array erstellen. (Wahrscheinlich geht setlegth nicht)
Oder :gruebel: |
Re: Mehrdimensionale Dynamische Arrays
Wird nix. ;) Die Delphi-Syntax ist so wie sie ist, anders als du's geschrieben hast gehts nicht.
|
Re: Mehrdimensionale Dynamische Arrays
du könntest auch einen neuen Typen deklarieren...
|
Re: Mehrdimensionale Dynamische Arrays
Tja scheisse gelaufen :cry: war aber auch nur eine Komfortangelegenheit weil bis jetzt hatte ich immer
Delphi-Quellcode:
Dann musste ich aber beim setlength immer so hantieren:
type
tvertline=array of tinhalt; tspielfeld=array of tvertline; var spielfeld:tspielfeld; for i:=0 to length(spielfeld)-1 do setlength(spielfeld[i],xyz); Das wird dann wohl auch so bleiben müssen. |
Re: Mehrdimensionale Dynamische Arrays
Hallo
geht auch in einem Rutsch
Delphi-Quellcode:
Deine Variante brauchst du nur, wenn du z.B. jedem XWert (i) eine unterschiedliche Anzahl von "Items" zuweisen willst.
setlength(Spielfeld,xAnzahl,YAnzahl);
Mfg Frank |
Re: Mehrdimensionale Dynamische Arrays
Ich hätte das Beispiel wohl schneller schreiben sollen, nun ist man mir zuvor gekommen, aber egal ;)
Delphi-Quellcode:
MfG Pr0g
procedure TForm1.Button1Click(Sender: TObject);
var fMap: Array of Array of Integer; i, j, fCount: Integer; s: String; begin // Länge festlegen Setlength(fMap, 2, 4); // Beispielwerte reinschreiben fCount := 0; for i := Low(fMap) to High(fMap) do begin for j := Low(fMap[i]) to High(fMap[i]) do begin fMap[i, j] := fCount; Inc(fCount); end; end; // Und in ein Memo auslesen Memo1.Clear; for i := Low(fMap) to High(fMap) do begin s := ''; for j := Low(fMap[i]) to High(fMap[i]) do s := s + IntToStr(fMap[i, j]) + ' '; Memo1.Lines.Add(s); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz