Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Array mit TPosition
Bennle - Di 27.12.05 02:02
Titel: Array mit TPosition
Hallo,
Ich habe folgendes definiert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| type TPosition = record Menge: Integer; Artikelnr: String; Artikel: String; Beschreibung: String; Preis: Real; Summe: Real; end;
var positionen: array of TPosition;
... positionen[0].Menge := 2; positionen[0].Artikelnr := '2222'; positionen[0].Artikel := 'Nix'; positionen[0].Beschreibung := 'xxx'; positionen[0].Preis := 2.99; positionen[0].Summe := positionen[0].Menge * positionen[0].Preis; ... |
Beim starten (also während der Laufzeit) tritt ein Fehler auf! (Bild)
Habe ich etwas falsch definiert?
MfG
Bennle
BenBE - Di 27.12.05 02:24
Du musst vor der Nutzung des Arrays dessen Größe mit SetLength festlegen.
Bennle - Di 27.12.05 02:26
BenBE hat folgendes geschrieben: |
Du musst vor der Nutzung des Arrays dessen Größe mit SetLength festlegen. |
Aha, danke! Aber wie mach ich das ? :D
delfiphan - Di 27.12.05 02:30
z.B. so:
Delphi-Quelltext
1:
| SetLength(positionen, 5); |
(Dabei ist 5 die gewünschte Länge deines Arrays..)
BenBE - Di 27.12.05 02:33
RTFM oder RTFDOH ...
Delphi-Quelltext
1:
| SetLength(ArrayVar, Len); |
Bennle - Di 27.12.05 02:34
Hallo,
Danke! Nun gehts!
MfG
Bennle
Ecki - Sa 16.09.06 12:42
Titel: Dynamische Arrays auch freigeben!
Hallo, der Tip ist ok, nur solltest Du am Ende deines Programmes dynamische Array´s auch wieder freigeben mit Setlength(positionen,0) , denn sonst bleibt der Speicher belegt.
Zwischendurch kannst du mit length(positionen) die reservierte Anzahl rausbekommen, mit high(positionen) das oberste element. Das ist praktisch für Schleifen for i := low(positionen) to high(positionen)
delfiphan - Sa 16.09.06 18:01
Ecki du bist nicht nur 3/4 Jahre zu spät sondern deine Antwort auch noch falsch ;)
Dyn. Arrays sind referenzgezählt und werden automatisch freigegeben. Genau wie die Strings auch.
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!