Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-05-2012
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Poder: 21
tarco35 Va por buen camino
Question Scroll en DBGrid

Saludos... les comento (en Delphi6)
Tengo un DBGrid que me muestra una tabla de paradox y tengo asignado un evento cuando el usuario realiza (OnCelClick) un click en alguna fila
El caso es que cuando desplazo con la barra de scroll el triangulito que indica el registro actual se desplaza, pero no me dispara ningun evento de cambio, ni en "OnColEnter", "OnColExit"
Como prodria hacerlo para que cuando desplace el scroll fuese como cuando hace click en una fila y poder asignarle el evento necesario???
Gracias.
Responder Con Cita
  #2  
Antiguo 06-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola tarco35.

¿ Probaste con el evento AfterScroll del TDataSet ?

Un ejemplo
Código Delphi [-]
procedure TForm1.DataSetAfterScroll(DataSet: TDataSet);
begin
  Caption:= DataSet.FieldByName('TU_CAMPO').AsString;
end;

Otro
Código Delphi [-]
procedure TForm1.DataSetAfterScroll(DataSet: TDataSet);
begin
  Caption:= DBGrid1.SelectedField.AsString;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 06-05-2012
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Poder: 21
tarco35 Va por buen camino
Question esta en otra unidad

no lo he probado... resulta que tengo la tabla en ModuloDatos y donde ocurre el evento es en otra unidad y no se como poner en el evento que mencionas la accion del form...

Por si no me he explicado bien:
ModuloDatos.TablaProductos -> aqui es donde tengo todas las tablas

FormPruebas: aqui es donde esta el DBGrid
Responder Con Cita
  #4  
Antiguo 06-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Lo más simple es crear el evento en el mismo TDataModule: Click sobre el DataSet -> Click pestaña Events -> Doble click sobre AfterScroll.

Pero al estar el DataSet en un DataModule, te conviene asignarlo manualmente en donde lo utilices y liberarlo al finalizar su uso:
Código Delphi [-]
type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    procedure FormCreate(Sender: TObject);
    ...
    procedure FormDestroy(Sender: TObject);
  private
    procedure DataSetAfterScroll(DataSet: TDataSet);
  public

  end;

var
  Form1: TForm1;

implementation

uses Unit2; // DataModule

procedure TForm1.DataSetAfterScroll(DataSet: TDataSet);
begin
  Caption:= DBGrid1.SelectedField.AsString;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DataModule.DataSet.AfterScroll:= DataSetAfterScroll; // asignar procedimiento al evento
end;

...

procedure TForm1.FormDestroy(Sender: TObject);
begin
  DataModule.DataSet.AfterScroll:= nil;  // liberar
end;
Deberás asegurarte que el DataModule esté creado con anterioridad a donde realices la asignación (Form1 en el ejemplo) ya que si no, estarías intentando asignar un evento a algo inexistente y lanzará una excepción.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 06-05-2012 a las 21:42:28.
Responder Con Cita
  #5  
Antiguo 06-05-2012
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Poder: 21
tarco35 Va por buen camino
resuelto

Muchas gracias.. funciona perfecto... y para que me funcione tambien con la ruedecita del raton???

Última edición por tarco35 fecha: 06-05-2012 a las 22:50:40. Razón: completar el desplazamiento
Responder Con Cita
  #6  
Antiguo 06-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola tarco35.

Código Delphi [-]
...
 TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    procedure FormCreate(Sender: TObject);
    ...
    procedure FormDestroy(Sender: TObject);
  private
    procedure MouseWheel(var Msg: tagMSG; var Handled: Boolean);
    procedure DataSetAfterScroll(DataSet: TDataSet);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2; // DataModule

procedure TForm1.MouseWheel(var Msg: tagMSG; var Handled: Boolean);
var
  i: SmallInt;
begin
  if Msg.message = WM_MOUSEWHEEL then
  begin
    Msg.message := WM_KEYDOWN;
    Msg.lParam := 0;
    i := HiWord(Msg.wParam);
    if i > 0 then
      Msg.wParam := VK_UP
    else
      Msg.wParam := VK_DOWN;
    Handled := false
  end
end;

procedure TForm1.DataSetAfterScroll(DataSet: TDataSet);
begin
  Caption:= DBGrid1.SelectedField.AsString
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMessage:= MouseWheel;
  DataModule1.DataSet.AfterScroll:= DataSetAfterScroll
end;

...

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Application.OnMessage:= nil;
  DataModule1.DataSet.AfterScroll:= nil
end;

end.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 07-05-2012
tarco35 tarco35 is offline
Miembro
 
Registrado: sep 2003
Posts: 210
Poder: 21
tarco35 Va por buen camino
gracias

Gracias de nuevo... funciona perfecto... muy amable
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
DBGrid y Rueda(Scroll) del Mouse en Delphi 7 Emilio_82 Conexión con bases de datos 8 05-04-2013 10:23:41
Scroll en DBGrid marcial Varios 15 30-03-2012 21:16:08
barra de scroll en DBGrid macro32 Conexión con bases de datos 2 15-08-2008 08:53:58
Barra de Scroll de un DbGrid con Query gandalf_uy Varios 2 22-09-2005 19:09:34
DBGRID y SCROLL vtdeleon OOP 2 22-12-2004 15:34:59


La franja horaria es GMT +2. Ahora son las 11:26:35.


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