PDA

Ver la Versión Completa : Recuperar situación de filas en DBGrid


sur-se
07-12-2004, 16:17:44
Hola. Utilizo Delphi 5. Necesitaría poder recuperar la situación actual de los registros de una rejilla conectada a un TDatasource (de una query), es decir, si yo he realizado scroll hacia arriba/abajo y en este momento tengo una fila en la mitad de la rejilla, por ejemplo, después de cerrar la query y volver a lanzarla, poder recuperar de nuevo esa fila en la mitad de la rejilla.
Básicamente, un usuario se desplaza por la rejilla y selecciona un registro para su modificación. La edición del registro se realiza en una pantalla aparte y luego se debe relanzar la query para recoger esos cambios. Quisiera dejar la rejilla tal como el usuario la tenía cuando entró en edición. Es más, me bastaría con saber cuantas filas tenía por encima, pues al hacer el locate a la fila, esta se posiciona la primera y luego podría desplazarla fácilmente hacia abajo el número de filas que fuesen necesarias.
Salu2.

Julià T.
07-12-2004, 21:53:11
Con las funciones:
-GetBookmark
-GotoBookmark
El la ayuda de delphi existe un ejemplo ilustrativo

sur-se
09-12-2004, 09:10:37
No es eso exactamente lo que necesitaba hacer. Con el getbookmark y gotobookmark me situo en el registro en concreto, pero no me deja la misma situación de la rejilla que tuviese, es decir, si la fila estaba por ejemplo la tercera en la rejilla.
De todas formas ya he encontrado como hacerlo, indagando en el dbgrid he visto que tenía dos propiedades RowCount y Row pero no están accesibles desde la dbgrid. He creado una nueva dbgrid a partir de esta y me he creado dos métodos publicos que ya me permiten restaurar la situación exacta de la fila utilizando la propiedad Row, que me da exactamente la situación en la que estaba la fila.
Salu2.

Julià T.
09-12-2004, 18:23:24
La propiedad que buscabas de DBGrid se llama:
-SelectedIndex