Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿DBGRID recordad posicion del cursor? (https://www.clubdelphi.com/foros/showthread.php?t=72744)

JXJ 09-03-2011 19:47:40

¿DBGRID recordad posicion del cursor?
 
Hola

tengo un problema con el dbgrid.

si yo tengo una tabla con 500 clientes y los datos los modifico
al hacer click en el dbgrid.


si me quede editando el cliente ciuyuo id es el 200.
y quiere que al reabrir el programa me muestre el listado.

¿como puedo posicionar el cursor del dbgrid.
en el registro 200. ?

¿hay alguna forma de indicarle al dbgrid que se posicione en el registro
200, o en 100, o en el 5. por codigo. ?

gracias.

ecfisa 09-03-2011 19:56:25

Hola JXJ.

Cita:

¿hay alguna forma de indicarle al dbgrid que se posicione en el registro
200, o en 100, o en el 5. por codigo. ?
Si, almacenando la posicion en un TBookmarkStr:
Código Delphi [-]
procedure TForm1.DBGridDblClick(Sender: TObject);
begin
  FBookmarkStr:= DBGrid1.DataSource.DataSet.Bookmark;
  ...

Para volver a la posición guardada:
Código Delphi [-]
  DBGrid1.DataSource.DataSet.Bookmark:= FBookmarkStr;

La variable FBookmarkStr de tipo TBookmarkStr podrías declararla privada al form, global o almacenarla segun sea el caso.

El TDBGrid no tiene el evento OnClick quizá te sirva OnDblClick a ese fin.

Un saludo.

Chris 09-03-2011 20:41:59

Lo primero que debes hacer es guardar el ID del último cliente que estuvo seleccionado. Puedes utilizar distintos métodos para guardar el ID, ya sea que lo guardes en el registro de Windows o en un archivo dentro de la carpeta del usuario.

Cuando vuelvas a ejecutar (abrir) tu programa, lee el ID del último cliente y luego de que abras nuevamente la base de datos, ve al último cliente con la función Locate.

Saludos,
Chris

JXJ 09-03-2011 23:17:20

Cita:

Empezado por Chris (Mensaje 393026)
Lo primero que debes hacer es guardar el ID del último cliente que estuvo seleccionado. Puedes utilizar distintos métodos para guardar el ID, ya sea que lo guardes en el registro de Windows o en un archivo dentro de la carpeta del usuario.

Cuando vuelvas a ejecutar (abrir) tu programa, lee el ID del último cliente y luego de que abras nuevamente la base de datos, ve al último cliente con la función Locate.

Saludos,
Chris

super ecfisa

estoy checando esa manera.

la manera de Chris
me intriga.

como usaria locate?

seria asi


MyQuery1.Locate('user_id´);


yo uso un query.
select * from clientes.

en el dbgrid aparecen todos los clientes con su id asi

ID nombre apellidos mail activo
1 juan peres perez juan@perex.com 1
2 juan2 peres2 perez2 juan2@perex.com 0
3 juan3 peres3 perez3 juan3@perex.com 1
4 juan4 peres4 perez4 juan4@perex.com 0
5 juan5 peres5 perez5 juan5@perex.com 1
6 juan6 peres6 perez6 juan6@perex.com 0

10 juan10 peres10 perez10 juan10@perex.com 0

bueno el id guardaro es el 10

solo hago un query asi
MyQuery1.Locate('10');

y el dbgrid se desplara hasta el id 10 ?

se seleccionaria automaticamente esa fila?

ahora mismo lo checo a ver si lo logro aplicar.

gracia.s

ppalmamichi 10-03-2011 02:16:16

MyQuery1.Locate('user_id',10,[locaseinsensitive]);

esto colo ca el cursor en el registro con valor de user_id = 10

saludos


La franja horaria es GMT +2. Ahora son las 19:23:23.

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