Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - dynamisches Array
uli - Mi 04.12.02 17:07
Titel: dynamisches Array
Ich möchte Integerwerte in einem Array ablegen.
Allerdings steht die Anzahl vorher nicht fest.
Wie kann ich ein dynamisches Array deklarieren oder kann ich
die Anzahl z.B. mit ARRAY[0..1] deklarieren und während der Laufzeit
z.B. auf ARRAY[0..10] ändern?
Ich habe schon im Forum gesucht, aber nichts gefunden, was funktioniert. :nixweiss:
Gruß Uli.
Klabautermann - Mi 04.12.02 17:12
Hallo,
du deklarierst ein Dynamisches Array einfach so:
Quelltext
1: 2:
| VAR IntArray : ARRAY OF INTEGER; |
Mit SetLength änderst du die Grözße zur Laufzeit.
In der Online Hilfe solltest du einiges zu dem Thema finden.
Gruß
Klabautermann
uli - Mi 04.12.02 19:33
Danke für die schnelle Antwort.
Genau das habe ich schon versucht.
Das steht so in der Hilfe und im DF habe ich das auch gefunden.
Leider funktioniert es nicht.
Beim Copilieren bekomme ich folgende Fehler angezeigt:
1. Fehlermeldung bei der Deklaration: '[' erwartet, aber 'OF' gefunden.
2. Fehlermeldung bei SetLength: Inkompatible Typen: 'String' und 'Array'.
Gruß Uli.
Delete - Mi 04.12.02 21:19
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Button1Click(Sender: TObject); var IntArray : array of integer; i : integer; begin SetLength(IntArray,1); IntArray[0] := 12;
SetLength(IntArray,2); IntArray[1] := 24;
for i := 0 to length(IntArray) - 1 do ShowMessage(inttostr(IntArray[i])); end; |
Geht doch?!
uli - Mi 04.12.02 23:38
Ich habe die Procedur jetzt 1 zu 1 übernommen, bekomme aber die gleiche Fehlermeldung beim Compilieren.
Liegt's vielleicht am Delphi3? :?!?:
Tino - Do 05.12.02 00:25
uli hat folgendes geschrieben: |
Liegt's vielleicht am Delphi3? :?!?: |
Ja! Das ist erst ab Delphi 4 möglich. Jedenfalls die Methode die oben beschrieben wurde.
Gruß
TINO
Klabautermann - Do 05.12.02 07:32
Hallo,
alternativ kannst du verkettete Listen nutzen.
Eine Beipielimpementation findest du
hier [
http://www.auq.de/viewtopic.php?t=2667] (weiter unten von einem gewissen Klabautermann ;)).
Gruß
Klabautermann
uli - Do 05.12.02 09:26
Danke für den Tip, eine andere Alternative habe ich sicherlich erstmal nicht. Allerdings muss ich mir mit meinen noch nicht so ausgeprägten Delphikenntnissen die Sache mal so richtig auseinandernehmen um sie zu verstehen. :mrgreen:
Vielleicht bekomme ich von meinem Chef auch mal das Geld für Delphi7 bewilligt und dann habe ich auch die dynamischen Arrays. :wink:
Gruß Uli.
uli - Do 05.12.02 09:54
:think: Ich habe mir das in der Hilfe von Delphi3 nochmal genauer angesehen. Es ist in der Tat so, dass es keine dyn. Arrays gibt.
Dort gibt es sogenannte offene Array, mit denen ich Arrays verschiedener Größe an Proceduren oder Funktionen übergeben kann.
In etwa so:
Quelltext
1: 2: 3: 4: 5: 6:
| Procedure Machwas(A: Array of Integer) begin . . . end; |
Gruß Uli.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!