Ver la Versión Completa : Saber cuando se activa el dataset asociado a un TDBGrid
cadetill
17-06-2004, 11:37:00
Hola
Estoy haciendo un deribado de TRxDbGrid y me encuentro con la necesidad de saber cuándo se activa el dataset asociado a este componente.
Me he estado mirando el TDataLink (y du descendiente TGridDataLink) que es el que creo controla el tema de acceso a la tabla, pero no veo muy bien por dónde tirar.
Alguien podría orientarme de cómo poder hacerlo?
Gracias o todos
marto
17-06-2004, 12:14:35
Wop!
Pues con las Rx no lo sé, porque no trabajo con ellas, pero si hereda de TCustomDbGrid, creo que tienes que sobreescribir el método LinkActive.
Si no hereda de hí, se tienen que haber programao un DataLink que herede de TDataLink y que substituya a TGridDataLink, mira el método ActiveChanged de esta clase y verás a cual llama del grid.
Este es el código de ActiveChanged de TGridDataLink:
procedure TGridDataLink.ActiveChanged;
begin
if Active and Assigned(DataSource) then
if Assigned(DataSource.DataSet) then
if DataSource.DataSet.IsUnidirectional then
DatabaseError(SDataSetUnidirectional);
FGrid.LinkActive(Active);
FModified := False;
end;
Si tu grid no hereda de ahí, tienes que ver como han sobreescrito este método en la clase datalink que usen. No se si me explico... :confused:
cadetill
17-06-2004, 12:26:06
Hola Marto
Sí, eso lo había visto, el problema es el siguiente:
1.- El TRxDbGrid hereda de TDbGrid el cual ya tiene una propiedad detipo TGridDataLink.
2.- Para hacer lo que me propones tendría que hacer un hijo de TGridDataLink para reescribir el método.
3.- Tendría que declarar una propiedad de el tipo TGridDataLink hijo
TMiDataLink = class(TGridDataLink)
protected
procedure ActiveChanged; override;
end;
Ahora el problema está en, cómo digo yo a mi propiedad DataLink del RxDbGrid que es de tipo TMiDataLink en lugar de TGridDataLink para que se me dispare el evento que acabo de redefinir?
Gracias ;)
marto
17-06-2004, 12:28:31
No quería decir eso, lo que tiens que sobreescribir es el método LinkActive del grid!!!!
cadetill
17-06-2004, 12:37:24
Marto, te voy a dar un beso :D
Correcto, había leído mal tu primer mensaje :o
Pues gracias miles
Nos leemos ;)
vBulletin v3.6.8, Derechos ©2000-2013, Jelsoft Enterprises Ltd.