Es muy buena tu observación
DarkMan. Habia puesto esa declaración ahí más que nada por fines informativos, para dejar claro el tipo de datos de Item. Pero lo cierto es que ni aun siendo una variable global tendría mucho sentido, pues no es cuestión de tener una variable por cada elemento de la lista.
Lo adecuado es crear dinámicamente los elementos que se insertan:
Código Delphi
[-]
var
Item: PItem;
begin
New(Item);
Lista.Add(Item); end;
Claro que, antes de destruir la lista, hay que recorrer sus elementos para liberar la memoria:
Código Delphi
[-]
var
I: Integer;
begin
form I := 0 to Lista.Count - 1 do
Dispose(Lista[i]);
end;
// Saludos