Zitat:
FBufferArray: array of array of Pointer;
Das geht sowieso nicht!
Es darf höchsten eine Dimension offen bleiben.
Also etwa:
array[1..100] of array of Pointer
Der Datentyp Pointer ist auch Falsch.
Da alle Klasse in Delphi von TObject abgeleitet sind wäre TObject der richtige
Datentyp.
Angenommen du möchtest ein 2-dim. Array mit offenen Grenzen.
Dann muss das mehrdimensionale Array auf das eindimensionale Array abgebildet
werden.
Delphi-Quellcode:
type
TMeinObjArray = array of TObject; // offenes eindim. Array von Objekten
maxX := 100; // zur Laufzeit festlegen
maxY := 50;
// Speicher besorgen
SetLength(meinObjArray, maxX*maxY);
// befüllen mit Instanzen
for i:= 0 to maxY-1 do
for j := 0 to maxX-1 do
// da beide Dimensionen offen sind
// müssen wir selber rechnen
meinObjArray[i*maxX+j] := TGround.Create;
// Zugriff auf TGround an Position 13, 40
TGround(meinObjArray[13*maxX+40]).LiftUpTotheSky(....);
// Instanzen freigeben
for i := 0 to maxX*MaxY-1 do
begin
TGround(meinObjArray[i]).Free;
end;
Schau dir mal
TObjectList an; das könnte dir nützlich sein.