il te faut une methode POP/PUSH pour ton tableau :
type
pPnt = ^Pnt;
Pnt = integer;
TArPPnt = array of pPnt;
const
SizeOfPnt = SizeOf(Pnt);
function PushPnt(const AValue : Pnt; var ATap : TArPPnt): integer;
var ptr : pPnt;
begin
result := Length(ATap);
SetLength(ATap, result+1);
new(ptr);
ptr^ := AValue;
ATap[result] := ptr;
end;
function PopPnt(const Index: integer; var ATap: TArPnt): integer;
var ptr : pPnt;
begin
result := High(ATap);
ptr := ATap[Index];
Dispose(ptr);
if Index < result then
CopyMemory(@ATap[Index], @ATap[Index+1], (result-Index+1)*SizeOfPnt);
SetLength(ATAp, result);
end;
ou encore, deriver un objet TList avec le type pPnt a la place des declaration pointer.