Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   Movimientos dentro de un DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=80189)

daragor 07-09-2012 23:59:58

Movimientos dentro de un DBGrid
 
Hola nuevamente amigos.. recurro a uds. xq no logro dar en el clavo esta vez con un dbgrid.. no encuentro una propiedad, o no se usar alguna, q me sirva para el objetivo..

Tengo cargados los datos de un query y se muetran en la dbgrid, lo q quiero es que al moverse dentro de ella con el teclado.. (teclas arriba o abajo) vaya mostrandose los datos de los registros en los distintos editbox. eso ya lo logre probando el evento "oncellclick" .. pero como es sabido solo funciona al hacer un click en una fila, el procedimiento es asi de simple:

Código Delphi [-]
procedure TABM_marcas.listaCellClick(Column: TColumn);
begin
  cod.Text:= mquery.FieldByName('cod').Value;
  nom.Text:= mquery.FieldByName('nombre').Value;
end;

Ahora. se imaginan que una vez logrado esto me muevo con las flechas por los registros y siguen apareciendo los datos del registro seleccionado con click... me gustaria q al moverme muestre los del registro actual..

Compañero espero me entiendan y me tiren un soga para solucionar esta pequeñes, gracias!

look 08-09-2012 00:03:57

prueba con los eventos onKeyDown o OnkeyPress del Grid

daragor 08-09-2012 00:07:50

Gracias look por tu respuesta, pero estoy teniendo algunos problemas con esos eventos.. errores al llegar el final del grid, o al principio...

roman 08-09-2012 00:11:35

Cita:

Empezado por daragor (Mensaje 442384)
lo q quiero es que al moverse dentro de ella con el teclado.. (teclas arriba o abajo) vaya mostrandose los datos de los registros en los distintos editbox.

En realidad, es una pregunta muy extraña, porque, si no mal entiendo, en tus edits estás poniendo siempre los valores del registro seleccionado. Bueno, pues esto mismo lo logras usando dbedits conectados al mismo datasource que el dbgrid.

Ahora, si por alguna razón rara no quieres usar dbedits, entonces toma en cuenta que al moverte arriba o abajo, cambia el registro activo en el dataset conectado al grid, lo cual provoca el evento AfterScroll del dataset, que es donde yo llenaría los edits.

// Saludos

daragor 08-09-2012 00:19:58

Roman maestro.. muchas gracias.. el evento afterscroll del dataset es lo q funciona a la perfeccion!

Con tema de los tedit o tdbedit no lo sabia! como dije en algun otro post estoy en proceso de conocimiento del ide y sus propiedades como asi tambien de la sintaxis. vengo de otro leguaje.. Muchas gracias tema resuelto!

roman 08-09-2012 00:21:09

En ese caso, yo te sugiero que te olvides del AfterScroll y cambies tus edits por dbedits, que harán en automático la actualización de datos.

// Saludos

daragor 08-09-2012 00:31:18

Bien, excelente, todo suma para esta buen foro de lazarus que esta muy poco usado!

Una consulta mas, como seria el procedimiento de la tecla "Enter" para habilitar los tdbedit?

roman 08-09-2012 00:37:36

¡Vaya! No me había dado cuenta que estamos en el foro de lázarus y contesté pensando que se trataba de delphi. Lo bueno es que igual aplica.

Esta última pregunta no la entiendo.

// Saludos

daragor 08-09-2012 00:48:12

Supongamos q estoy navegando en la grilla y presiono "enter" (#13) esto deberia habilitarme unos tdbedit que tengo en el form..

roman 08-09-2012 00:51:22

Pero, y ¿por qué están deshabilitados esos dbedits? Si los conectas, como dije antes, al mismo datasource que el dbgrid, siempre van a estar habilitados.

// Saludos

daragor 08-09-2012 00:53:31

Necesito deshabilitarlos y luego habilitarlos en mi sistema..


La franja horaria es GMT +2. Ahora son las 09:49:26.

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