Ты ведь добавляешь указатели и тут же их удаляешь
Код:
var
pibuf : array of PInteger;
procedure TForm3.Button1Click(Sender: TObject);
var
L : TList;
pi : PInteger;
I, J : Integer;
begin
L := TList.Create;
for I := 0 to 5 do
begin
SetLength(pibuf, I + 1);
New(pibuf[i]);
pibuf[i]^ := 10 * I;
L.Insert(I, pibuf[i]); //так тоже делал: L.Add(pi);
// Dispose(pi);
end;
for I := 0 to L.Count - 1 do
begin
pi := PInteger(L.Items[i]);
J := pi^;
Tag := J;
end;
end;
Dispose сделай в
OnDestroy для всех созданных указателей.