Tema: TCollection
Ver Mensaje Individual
  #1  
Antiguo 24-06-2003
Igna Igna is offline
Miembro
 
Registrado: jun 2003
Posts: 27
Reputación: 0
Igna Va por buen camino
TCollection

Hola a todos.

Intentaré explicar mi duda de forma sencilla...Tengo un componente desarrollado por mi, descendiente de TStringGrid. Este componente tiene una propiedad de tipo TCollection. Lo que quiero hacer es que cuando se añada un nuevo item a la "coleción", se añada una nueva fila a mi componente (como hace el TDBGrid con las columns). Supongo que tendré que generar un evento cuando añada un nuevo item, y en el código del evento sumar una línea a mi componente, pero algo estoy haciento mal, por que me da errores.

Os pongo parte del código por si os aclara algo:

TNuevoUsuario = procedure (Sender: TObject) of object;


TUsuarios = class(TCollection)
private
FNuevoUsuario: TNuevoUSuario;
public
constructor Create(Owner : TPersistent);
destructor Destroy; override;
Function Add:TUsuariosItem;
function Insert(Index: Integer): TUsuariosItem;
property Items[Index: Integer]: TUsuariosItem
read GetItem
write SetItem;
property NuevoUsuario: TNuevoUsuario read FNuevoUsuario write FNuevoUsuario;

TOcupacion = class(TStringGrid)
private
FUsuarios: TUsuarios;
procedure NuevoUsuarioEvento(sender:TObject);

..............................

Function TUsuarios.Add:TUsuariosItem;
begin
result:=TUsuariosItem(Inherited Add);
if Assigned(NuevoUsuario) then
NuevoUsuario(Self);
end;

constructor TOcupacion.Create(AOwner: TComponent);
begin
Inherited;
FUsuarios := TUsuarios.Create(AOwner);
FUsuarios.NuevoUsuario := NuevoUsuarioEvento;
end;

procedure TOcupacion.NuevoUsuarioEvento(Sender: TObject);
begin
RowCount:=RowCount+1;
end;



Agradecería cualquier orientación sobre el tema.

Un saludo.
Responder Con Cita