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
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
0