Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Desplazar ScrollBar de TDBGrid (https://www.clubdelphi.com/foros/showthread.php?t=25346)

eureka 20-09-2005 13:51:30

Desplazar ScrollBar de TDBGrid
 
Saludos,

Se presenta una DBGrid ligada a un TQuery. Despues de hacer un Close y un Open sobre la query, quiero mantener la posicion de la Scrollbar horizontal en la misma posición que tenia antes de realizar el Close.

He intentado utilizar Grid.ScrollBy, pero sin exito.

El siguiente codigo mueve la scrollbar pero con ella no se desplaza el contenido de la grid.
Código Delphi [-]
iPosSbHorz:= GetScrollPos((Column.Grid As TDBGrid).Handle,SB_HORZ);
Query.Close;
Query.Open;
SetScrollPos((Column.Grid As TDBGrid).Handle,SB_HORZ,iPosSbHorz,True);

Gracias por su tiempo y sugerencias

Neftali [Germán.Estévez] 20-09-2005 14:36:43

¿Has probado ha hacer un Locate/similar sobre la tabla?
De esa forma te posiciones sobre el registro activo a la vez que mover el Scroll; aunque no estoy del todo seguro de que sea lo que necesitas.:confused:

eureka 20-09-2005 15:17:55

Un locate sobre la query desplaza la scrollbar vertical, pero no mueve a la posicion deseada el scrollbar horizontal

Neftali [Germán.Estévez] 20-09-2005 15:35:22

Perdón, perdón, perdón,... se me escapó lo de horizontal...
Prueba con ésto (uno por cada columna que quieras desplazar):

Código Delphi [-]
   SendMessage(DBGrid1.Handle, WM_HSCROLL, SB_PAGERIGHT, 0);

delphi.com.ar 20-09-2005 15:59:38

Probá esto:
Código Delphi [-]
  qryData.DisableControls;
  try
    qryData.Close;
    ...
    qryData.Open;
  finally
    qryData.EnableControls;
  end;

Saludos!

jmariano 20-09-2005 16:11:15

Tambien podrías probar con la propiedad "SelectedIndex" del DBGrid:

Código Delphi [-]
iPosSbHorz:= DBGrid1.SelectedIndex;
Query.Close;
Query.Open;
DBGrid1.SelectedIndex := iPosSbHorz;

Saludos!

eureka 20-09-2005 16:38:18

Si señores! Son un valor seguro. La propuesta hecha por Neftali funciona bien.

Código Delphi [-]
 
iPosSbHorz:= GetScrollPos((Column.Grid As TSPDBGrid).Handle,SB_HORZ);
 
...
 
while GetScrollPos(Handle,SB_HORZ) < iPosSbHorz do
SendMessage(Handle, WM_HSCROLL, SB_LINERIGHT, 0);

Gracias a todos

Sabrían como pintar la "muesca","triángulo"... de ordenación en el encabezado de columna de una TDBGrid?

jmariano 20-09-2005 17:58:20

Cita:

Empezado por eureka
Sabrían como pintar la "muesca","triángulo"... de ordenación en el encabezado de columna de una TDBGrid?

Nuevas preguntas, nuevos hilos ;)
(Si no lo has hecho, te sugiero leerte la Guía de estilo )

Saludos!

Delfino 20-09-2005 19:54:32

Todo estas caracteristicas y mas (ex columna chekbox) lo encuentras en el JvDBGrid de la libreria JVCL


La franja horaria es GMT +2. Ahora son las 16:55:03.

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