Ver Mensaje Individual
  #4  
Antiguo 17-11-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
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:
Código Delphi [-]
   if DBGrid1.SelectedRows.Count > 0 then
      with DBGrid1.DataSource.DataSet do
      begin
         ShowMessage(' Registro activo: ' + Fieldbyname('nombrecliente').AsString;
      end;

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)
  • Por un lado tengo la fila completa seleccionada (en azul), que marca a "Pepe"
  • Por otro, me aparece una sola celda seleccionada (en azul) que corresponde al registro que he hecho el scroll, el Nombre de cliente de este registro es "Manuel"
- 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.
Responder Con Cita