FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
problema cambiar formato de fila en dbGrid
Hola gente del Club Delphi, he hecho una pregunta similar en otro hilo pero referente a una TreeView pero ya hallé la solución ahora mi problema es co el dbGrid.
Necesito cambiar el color de una fila, ya se que es un tema muy comentado en el foro, he realizados varias busquedas pero lo que he visto no me sirve ó eso creo yo,vereis tengo un dbgrid en el formulario con más componentes y lo que yo quiro es cuendo pulso fuera del dbgrid que la fila que tenía seleccionada me cambie de color, con el TreeView lo he hecho con la propiedad HideSelection y me lo pone en color gris, es decir, quita el foco pero se mantiene seleccionado. ¡Habría alguna propiedad así en el DBGrid?, he probado con la propiedad
pero no me sirve ya que aparece una fila del dbgrid selecionada en cuanto se ejecuta la aplicación y yo sólo quiero que seleccione una fila cuando pinche en ella. Tambien he probado con el metodo dbGridDrawColumnCell() pero no se como poner la condición que sería cuando no este un se encuentre el foco en el dbGrid que la fila que estaba selecionada cambie de color, creo que con el método anteriormente nombrado no me sirve ya que el cambio de color se haría en el metodo dbGridExit, es decir, cuando he salido del dbgrid el que estaba selecionado que cambie de color. Si alguien tiene alguna idea de como hacerlo. Espero que me hayan entendido, si no es así por favor comuniquenmelo. Gracias por su ayuda en este y tantos otros problemas que me han resuelto. |
#2
|
|||
|
|||
A ver si te he entendido bien
Prueba con este código en los eventos OnEnter y OnExit a ver si es lo que
buscabas. Código:
procedure TForm1.DBGrid1Enter(Sender: TObject); begin DBGrid1.Options:=DBGrid1.Options-[dgrowselect,dgAlwaysShowSelection]; end; procedure TForm1.DBGrid1Exit(Sender: TObject); begin DBGrid1.Options:=DBGrid1.Options+[dgrowselect,dgAlwaysShowSelection]; end; |
#3
|
|||
|
|||
ok
Gracias sólo con poner la instrucción en el método exit ya funciona, ahora voy a investigar para en vez que la mantega seleccionado en color azul lo cambie a gris.
Muchísimas gracias , amigo . |
#4
|
|||
|
|||
Resuelto
POr si ha alguien le interesa pongo la solución, para ello utilizo una función tan comentada como es:
La condición expuesta puede ser redundante ya que pongo que el dbgrid continue se muestre selecionada y pongo también (gdSelected in state), es decir, que es estado sea selecionado, pues bien explico porque si no pongo esto último sería en caso de que exista un campo selecionado coloreo todo el dbgrid y poniendo esa consición más me colorea solo el campo selecionado en el dbgrid, que es lo que yo quería. Espero que lo hayais entendido y que le sirva a alguien de ayuda. Chao |
#5
|
|||
|
|||
Sin el OnEnter...
Si te funciona solo con el evento OnExit, pero si no pones el OnEnter
al entrar en el DBGrid no podrás modicar datos. Si no necesitas modificar, entonces no te hace falta. Saludos. |
|
|
|