Igna
24-06-2003, 11:26:40
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.
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.