Registriert: Di Dez 02, 2003 12:47 Beiträge: 300 Wohnort: Marburg
Ich habe Pointer falls das so heisst auf eine variable in einem record in einer array verlinkt (PVektor:=@Array[2].TVektor).
Aber nu muss ich immer, wenn ich die arraygrösse veränder die adresse neu zuweisen.
Gibt es da nen Weg das zu verhindern?
_________________ Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Das ist normal nicht immer zwingend notwendig. Aber in den meisten Fällen kommst du da nicht drumherum.
Eine andere Möglichkeit wäre, dass du Pointer auf deine Records in einer TList ablegst und dann kannst du auch Pointer auf die einzelnen Records oder auf ein Element des Records benutzen ohne diese ständig aktualisieren zu müssen. Zusätzlich dazu sollte das Erweitern und Verkleinern der Liste schneller gehen. Delphi muss dann nicht mehr alle Daten verschieben sondern nur noch deren Pointer. Was natürlich wesentlich schneller geht.
1. Du musst von deinem Record einen Pointertypen machen. RecordPointerTyp = ^RecordTyp;
2. Ein neues Element erstellst du mittels New und den Pointer legst du dann in die erstellete Liste. New(Variable von RecordPointerType); Dann mit Werten füllen, da momentan nur sinnloses Zeugs in dem Pointer steht.
3. Bevor du ein Element aus der Liste löschst musst du es dann natürlich freigeben. Das geht mittels Dispose. Anschließend kannst du es ohne Probleme aus der Liste löschen.
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.