Ver Mensaje Individual
  #7  
Antiguo 27-02-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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; // Item es un puntero

begin
  New(Item);

  {
    Llenar ropiedades de Item:
    Item^.Campo1 := ...; 

    En delphi puede omitirse el operador de referencia ^
    Item.Campo2 := ...;
  }
  Lista.Add(Item); // Ojo, antes había puesto -incorrectamente- Lista.Items.Add
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
Responder Con Cita