Zitat von
Hawkeye219:
Auf jeden Fall sollte man nur die
gültigen Elemente des Arrays benutzen:
Delphi-Quellcode:
procedure tetc.add(foo: Tdeinrecord);
begin
setlength(derarray, length(derarray)+1)
derarray[High(derarray)]:= foo; // <-- High() statt Length()
end;
Hi,
noch viel besser ist es, hier einfach gar kein Array zu verwenden. Ein Array ist nun mal eine recht statische Struktur und
setLength(Array, length(Array) + 1);
ist nicht wirklich empfehlenswert (kostet unnötig Zeit und wird vom Speichermanager nicht unbedingt optimal gelöst). Viel besser ist es, wenn du einfach eine TList verwendest, die ist genau dafür gedacht. An sich kannst du deine Records viel schöner als Pointer auf den Record übergeben (ist schneller) und diesen Pointer kannst du dann in deiner TList speichern. Wenn du lesend auf das Array zugreifst, dann kannst du hier ganz einfach eine Methode anlegen, die die TList in ein Array umwandelt. Schreibend kannst du auch Wahlfrei auf die TList zugreifen.
Gruß Der Unwissende