![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
A ver si me explico....
Establece en las opciones "dgSelectRow" para que al hacer clic, se seleccione la fila completa. También añade la opción "AlwaysshowSelection" prepara un botón con el siguiente código:
Ahora saca un listado que permita hacer un scroll. Según mis pruebas y usando un rxDBgrid, hago lo siguiente: - Hago clic en un registro con nombre de cliente: "Pepe". - Se queda esa fila al completo seleccionada (en azul toda la fila) - Hago un scroll (usando la barra de desplazamiento) - En este momento hay 2 cosas seleccionadas (en azul) - Ahora pulso el botón con ese código delphi - El resultado: Me aparece en el ShowMessage Pepe Lo que ha sucedido, es que el registro activo no ha cambiado (Pepe), pero la selección del Grid si (el que marca a Manuel). Prueba a ver si también te ocurre este comportamiento. Para mí es una falsa sensación de que el registro activo "ha camiado", es decir, Manuel aparece seleccionado, cuando en realidad, el registro Activo es Pepe (y por eso el evento AfterScroll no ha saltado). Como conclusión, me reafirmo en lo ya dicho: Al hacer un scroll vertical, el registro activo no cambia. Yo al menos, no sé modificar ese "comportamiento extraño del DBgrid" Quizás añadiendo el "FullRowSelect" (no recuerdo el nombre de la propiedad ahora mismo), sea más intuitivo para tu usuario. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 17-11-2006 a las 13:33:03. |
|
#2
|
|||
|
|||
|
Te agradezco mucho la explicación pero, sigo sin encontrar la solución.
Verás en mi DBGrid,no hay posibilidad de selección multiple, yo lo unico que pretendo es detectar que se ha pinchado en el deslizamiento vertical, para luego proceder a ejecutar un procedimiento. Eso es todo. Supongo que tendrá que haber un evento que detecte que se ha pulsado en el deslizamiento vertical. Gracias. |
|
#3
|
||||
|
||||
|
Yo también tengo un requerimiento parecido. Mi DBGrid está ligado a una tabla en el Data-Module. Yo cambio de registro en el DBGrid hacia arriba o hacia abajo con las flechas del teclado, y cada vez que me cambio a otro registro, quiero verificar el valor de uno de los campos del registro para saber si habilito o deshabilito un botón.
Tampoco he encontrado la manera de hacerlo. Cualquier ayuda es bienvenida. Muchas gracias a todos. |
|
#4
|
||||
|
||||
|
Hola saldanaluis.
Cita:
Cita:
Creo que en tu caso basta con verificar la condición en el evento AfterScroll de tu TDataSet.
Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 24-04-2011 a las 08:21:49. |
|
#5
|
||||
|
||||
|
Muchas Gracias. Me funcionó perfectamente.
Ahora, solo para terminar de entender lo que me diste a conocer aqui. En los estatutos del FormShow que me mencionas, lo que se está haciendo es el hacer que el evento AfterScroll del dataset que tengo en el DataModule, apunte al procedure que definí en mi forma donde tengo el botón. Por lo que cuando sucede un evento de scroll en el dataset, en lugar de ejecutar, en el caso que lo hubiera, el procedimiento de AfterScroll que estuviese definido en el DataModule, se va a ejecutar el procedure que definí en la forma donde tengo el botón. Al menos esto es lo que estoy entendiendo, ya que nunca he hecho algo así. Si no estoy en lo correcto, te agradecería me expliques que es lo que se hace con el código que me diste a conocer. Como verás, soy un programador muy 'light' del delphi 7, y no se muchos de los trucos y por lo tanto el potencial que tiene el delphi para hacer aplicaciones. Muchas gracias nuevamente. |
|
#6
|
||||
|
||||
|
Hola saldanaluis.
Si el DataSet permanecerá abierto, es totalmente correcta tu apreciación. ![]() En ese caso, la forma de guardar/restaurar el método asociado al evento sería:
Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 26-04-2011 a las 16:56:53. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Problemas con DBGrid y barras de desplazamiento | joaquin | OOP | 1 | 23-11-2006 17:11:00 |
| Problemas de desplazamiento dentro de un DBgrid? | andressanchez | Varios | 1 | 29-07-2005 21:55:43 |
| Barras desplazamiento vertical y horizontal | Leomedellin | Varios | 3 | 06-04-2005 23:50:58 |
| Problema con la barra de desplazamiento vertical en todo tipo de Grids | cybergerman | OOP | 1 | 08-10-2004 12:14:10 |
| Desplazamiento por un DBGrid | Newbie | Varios | 2 | 25-09-2003 02:15:43 |
|