PDA

Ver la Versión Completa : Movimientos dentro de un DBGrid


daragor
07-09-2012, 23:59:58
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:


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
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..