Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-06-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Saber cuando se activa el dataset asociado a un TDBGrid

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
Responder Con Cita
  #2  
Antiguo 17-06-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 21
marto Va por buen camino
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:

Código Delphi [-]
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...
__________________
E pur si muove
Responder Con Cita
  #3  
Antiguo 17-06-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
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

Código Delphi [-]
  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
Responder Con Cita
  #4  
Antiguo 17-06-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 21
marto Va por buen camino
No quería decir eso, lo que tiens que sobreescribir es el método LinkActive del grid!!!!
__________________
E pur si muove
Responder Con Cita
  #5  
Antiguo 17-06-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Marto, te voy a dar un beso

Correcto, había leído mal tu primer mensaje

Pues gracias miles

Nos leemos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:26:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi