Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Du bist natürlich nicht auf 1000 Elemente beschränkt.
Ich würde das aber anders machen.
Code:
F_Data:Pointer;// membervariable von irgendwas
// beim Initialisieren
// 1000 kannst du durch beliebiges ersetzen.
GetMem(F_Data,SizeOf(TPoly)*1000);
Und dann kannst du einfach einen PPoly auf Data setzen und per Inc dich durch das Array wurschteln.
Also
Code:
var
Poly: PPoly;
bagin
Poly:= F_Data;
// es steht bereuts auf das erste Element
// Und jetzt aber das nächste Element
Inc(Poly);
Oder wenn du direkt Pointer daraus brauchst kannst du auch Inc(Poly, Index -1); Die Pointer kannst du dir auch irgendwo merken wenn es erforderlich sein sollte.
So hast du den kompletten Speicher am Stück. Wenn du mehrmals GetMem aufrufst ist das nicht gewährleistet und sogar recht unwahrscheinlich.
Um die Größe später noch einmal zu verändern existiert eine Methode namens ReallocMem. Aber ich wäre vorsichtig was den bereits bestehenden Inhalt angeht. Es kann passieren, dass der dadurch verändert oder gelöscht wird. Besser ist es dann noch einmal alles zu setzen.
Mitglieder in diesem Forum: Google [Bot] und 8 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.