Ver Mensaje Individual
  #3  
Antiguo 10-11-2017
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Reputación: 11
bucanero Va camino a la fama
Hola Jhonny gracias por tu respuesta,

pero creo que no me he sabido explicar bien, el problema es como declarar una variable de mi propia clase genérica.

El siguiente código usando la clase TLIST funciona perfectamente

Código Delphi [-]
Unit Unit1  

type
  TForm1 = class(TForm)
  private
    { Private declarations }
    FMiList: TList;
  public
    { Public declarations }
    property MiList:TList read FMiList write FMiList;
  end;

  ...
  
end.

Código Delphi [-]
Unit unit2

type
  TDataClass = class
    ...
    data:integer;
  end;

  TMiListData = class(TList< TDataClass >)
  end;

  ....

var
  Form1:TForm1;
begin
  Form1:=TForm1.Create(Application);
  Form1.MiList:=TMiListData.Create;
  ...
end;

Y ahora sobre ese código yo pretendo usar una clase genérica propia derivada de la clase TLIST

Código Delphi [-]
Unit Unit1  

type
  TMiList< T >=class(TList< T >)
    ...
  end;
  
  TForm1 = class(TForm)
  private
    { Private declarations }
    FMiList: TMiList;
  public
    { Public declarations }
    property MiList:TMiList read FMiList write FMiList;
  end;

  ...
  
end.

Código Delphi [-]
Unit unit2

type
  TDataClass = class
    ...
    data:integer;
  end;

  TMiListData = class(TMiList< TDataClass >)
  end;

  ....

var
  Form1:TForm1;
begin
  Form1:=TForm1.Create(Application);
  Form1.MiList:=TMiListData.Create;
  ...
end;

...

El código es muy parecido en general, solo he sustituido la clase TLIST por una nueva clase derivada de TLIST, llamada TMiList.
Y entonces obtengo en UNIT1 el error anteriormente mencionado en la linea de la definición de la variable FMiList : TMiList.

El problema imagino que es un problema de sintaxis, pero ya he probado con TMiList y TMiList<T> pero no consigo que funcione. ¿Alguna idea al respecto?
Responder Con Cita