Friday, 19 June 2009

Utilizando la herencia para crear TObjectList personalizadas con Delphi

Muchas veces nos encontraremos con el tratamiento de Listas de Objetos, y estas incluirán nuestros propios objetos. El problema que se presenta es que siempre tenemos que realizar un cambio explícito de tipo con la operación cast. En este artículo indico un ejemplo sencillo de como crear nuestra lista personalizada heredando de la TObjectList y creando mi propia lista TPointRList que es una lista de objetos tipo TPointR donde sus propiedades son reales y no enteras, por eso la R final. Utilizando la lista de este modo, no tendremos que hacer la operación cast típica de TPointR(Object).

uses Contnrs;




type
TPointR = class(TObject)
X: double;
Y: double;
constructor Point(x, y: double); overload;
end;

TPointRList = class(TObjectList)
protected
function GetItem(Index: Integer): TPointR; overload;
procedure SetItem(Index: Integer; AObject: TPointR);
public
property Items[Index: Integer]: TPointR read GetItem write SetItem; default;
end;

{ TPointRList }

function TPointRList.GetItem(Index: Integer): TPointR;
begin
Result := TPointR(inherited Items[Index]);
end;

procedure TPointRList.SetItem(Index: Integer; AObject: TPointR);
begin
inherited Items[Index] := AObject;
end;



0 comments:

Post a Comment