FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Colorear una fila seleccionada...
Hola foro!!!
Estoy buscando la manera de colorear una fila completa de un dbgrid, estuve buscando y no encontre nada. El tema es el siguiente, tengo un dbgrid con una serie de informacion ahora cuando hago dbl click en una fila determinada que puede ser cualquiera ahi recien se tiene que colorear la misma, se puede hacer esto de alguna manera? De antemano, Gracias!
__________________
Sebastian Ibarrola -------------------------- |
#2
|
|||
|
|||
Hola,
Mira los eventos OnDrawDataCell y OnDrawColumnCell del grid, Allí puedes colorear a tu gusto. El problema es que vas a tener que guardar el estado de la fila en algun sitio (campo) porque las filas no se pintan cuando tu quieres sino cuando el grid lo decide. O sea que tu clic debe cambiar el valor de algun campo en el dataset que hay detrás del grid para poder pintar luego segun al valor del campo. p.e. añades un campo "estado" de tipo integer, que al hacer doble clic se cambie de zero a 1.
Cordialmente, Gerard. |
#3
|
||||
|
||||
Cita:
Si he entendido bien lo que tú necesitas, el problema y lo complicado en tu caso, es que no quieres pintar filas segun un valor existente en el DBGrid, sino a medida que vas pulsando click en ellas. Para eso lo único que se me ocurre es que al pulsar doble click sobre la fila modifiques el valor de ese registro (un campo interno llamado COLOREAR, por ejemplo) y lo actives (UPDATE a TRUE). No es necesario que ese campo esté visible si no lo necesitas. Ese mismo campo es el que debes utilizar para colorear las filas del DBGrid de la forma estandard utilizando el evento OnDrawColumn.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
||||
|
||||
Saludos
Ah que te refieres cuando dices que lo active???
Podrías ser mas específico, yo tengo el mismo problema no quiero depender del valor de un registro de una BD por que como la mia esta en Internet, es muy tardado, quisiera que fuera algo directo
__________________
"Los unicos que no se equivocan son aquellos que no intentan hacer algo." Iván Caballero Cano... ivanhalen77@gmail.com |
#5
|
||||
|
||||
Hola flystar, Neftalí se refiere a hagas lo siguiente:
. Crees un campo calculado "tbPintar" por Ej. y pongas la propiedad del DBGrid: Options -> dgRowSelect igual a True. . En el evento OnDblClick Pones a True tbPintar. (1) . Pintas en el evento OnDrawColumnCell. (2) (1) Código:
procedure TForm1.DBGrid1DblClick(Sender: TObject); begin tb.Edit; tbPintar.Value:= True; end; Código:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if gdSelected in State then with DBGrid1 do begin if tbPintar.Value then // color azul, fondo blanco begin Canvas.brush.Color:= clBlue; Canvas.Font.Color:= clWhite; end else // color por defecto del DBGrid begin Canvas.Brush.Color:= clWindow; Canvas.Font.Color:= clBlack; end; DefaultDrawColumnCell(Rect, DataCol, Column, State); // pintar end; end;
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 31-07-2010 a las 22:51:06. |
#6
|
||||
|
||||
Muchas Gracias.
Muchas Gracias por la respuesta, es una excelente slución!
__________________
"Los unicos que no se equivocan son aquellos que no intentan hacer algo." Iván Caballero Cano... ivanhalen77@gmail.com |
#7
|
||||
|
||||
¿Esto funciona? Lo he probado pero, si bien me permite colorear una fila, al desplazarme a otro registro se pierde el valor del campo calculado.
// Saludos |
#8
|
||||
|
||||
Bueno, yo creo que el campo debe estar físicamente en la tabla. No creo haber nombrado "campo calculado" en mi comentario y si lo he hecho he cometido un error.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Fila Seleccionada DBGrid | lacovera | OOP | 1 | 26-09-2008 15:58:40 |
marcar una fila seleccionada!! | candido | OOP | 10 | 19-10-2007 15:53:46 |
Borrar fila seleccionada de un componente TStringGrid | JM75 | OOP | 3 | 16-11-2006 10:31:06 |
Fila seleccionada Dbgrid siempre en el centro | Javier_A | OOP | 2 | 16-12-2004 16:39:51 |
Colorear celda seleccionada en StringGrid | Delphos | Varios | 6 | 18-08-2004 14:23:23 |
|