Ya puestos... ¿por qué no heredar de TobjectList?
Código Delphi
[-]
unit Unit1;
interface
uses Contnrs;
type THabitacion = class(TObject)
public
id :integer;
end;
type THabitacionList = class(TObjectList)
private
function GetItem(Index: Integer): THabitacion;
procedure SetItem(Index: Integer; const Value: THabitacion);
public
function Extract(Item: THabitacion): THabitacion;
function First: THabitacion;
function Last:THabitacion;
property Items[Index: Integer]: THabitacion read GetItem write SetItem; default;
end;
implementation
function THabitacionList.Extract(Item: THabitacion): THabitacion;
begin
result := THabitacion(inherited Extract(Item));
end;
function THabitacionList.First: THabitacion;
begin
result := THabitacion(inherited First);
end;
function THabitacionList.GetItem(Index: Integer): THabitacion;
begin
result:= THabitacion(inherited GetItem(Index));
end;
function THabitacionList.Last: THabitacion;
begin
result := THabitacion(inherited Last);
end;
procedure THabitacionList.SetItem(Index: Integer; const Value: THabitacion);
begin
inherited SetItem(Index, Value);
end;
end.
No es necesario todo el código... pero a mí me gusta así.
PD: Yo uso un experto de cnpacks que hice, sólo escribo "Habitacion" un clic de ratón... y se escribe todo eso.