Delphi - Problema TObjectList

   
Vista:

Problema TObjectList

Publicado por Roberto Garcia Lopez (7 intervenciones) el 18/02/2011 01:54:38
Saludos,
Estoy trabajando en delphi 7 con el contenedor (TObjectList), para garantizar que los datos de una lista sean homogeneos, pienso derivar en una nueva clase (TMsp_FieldsMysql) de la clase de lista (TObjectList) y personalizar el metodo (Add) y los metodos de acceso, relacionados con la propiedad (Items).

El problema que tengo es que me marca incompatibilidad de tipos en el metodo
function TMsp_FieldsMysql.GetObject(Index: Integer): TMsp_FieldMysql;
y el error es
[Error] Unitpruebas.pas(35): Incompatible types: 'TMsp_FieldMysql' and 'TObject'

codigo
type

TMsp_FieldMysql = class(TObject)
private
fcampo: ShortString;
ftipo: ShortString;
flongitud: ShortString;
fnulo: ShortString;
fkey: ShortString;
fbase: ShortString;
fextra: ShortString;
function Getbase: ShortString;
function Getcampo: ShortString;
function Getextra: ShortString;
function Getkey: ShortString;
function Getnulo: ShortString;
function Gettipo: ShortString;
function Getlongitud: ShortString;
public
property campo: ShortString read Getcampo;
property tipo: ShortString read Gettipo;
property nulo: ShortString read Getnulo;
property key: ShortString read Getkey;
property base: ShortString read Getbase;
property extra: ShortString read Getextra;
property longitud: ShortString read Getlongitud;
constructor Create(xcampo, xtipo, xlong, xnulo, xkey, xbase, xextra:
ShortString);
function SqlCrear: string;
function SqlModificar: string;
function SqlAgregar: string;
end;

TMsp_FieldsMysql = class(TObjectList)
protected
procedure SetObject(Index: Integer; Item: TMsp_FieldMysql);
function GetObject(Index: Integer): TMsp_FieldMysql;
public
function Add(Obj: TMsp_FieldMysql): Integer;
procedure Insert(Index: Integer; Obj: TMsp_FieldMysql);
property Objects[Index: Integer]: TMsp_FieldMysql
read GetObject write SetObject; default;
end;

implementation
{ TMsp_FieldsMysql }

function TMsp_FieldsMysql.Add(Obj: TMsp_FieldMysql): Integer;
begin
Result := inherited Add(Obj);
end;

function TMsp_FieldsMysql.GetObject(Index: Integer): TMsp_FieldMysql;
begin
Result := inherited Items[Index];
end;

procedure TMsp_FieldsMysql.Insert(Index: Integer; Obj: TMsp_FieldMysql);
begin
inherited Insert(Index, Obj);
end;

procedure TMsp_FieldsMysql.SetObject(Index: Integer;
Item: TMsp_FieldMysql);
begin
inherited Items[Index] := Item;
end;

aca pueden descargar los archivos
www.wolfteam.com.mx/delphi/unitpruebas.zip
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Solucionado

Publicado por Roberto Garcia Lopez (7 intervenciones) el 21/02/2011 18:17:25
Ya esta el problema era que tenia que especificar el tipo de class que estaba pasando

function TMsp_FieldsMysql.GetObject(Index: Integer): TMsp_FieldMysql;
begin
Result := inherited GetItem(Index) as TMsp_FieldMysql;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar