![]() |
![]() |
| 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
|
||||
|
||||
|
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. |
|
#2
|
||||
|
||||
|
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... [email protected] |
|
#3
|
||||
|
||||
|
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. |
|
#4
|
||||
|
||||
|
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... [email protected] |
|
#5
|
||||
|
||||
|
¿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 |
|
#6
|
||||
|
||||
|
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. |
|
#7
|
||||
|
||||
|
Sí, lo sé. La pregunta era más bien para ecfisa, pues me extrañó que pudiera modificarse un campo calculado.
// Saludos |
|
#8
|
||||
|
||||
|
Lo mas adecuado es guardar el valor de la fila seleccionada en una variable global.
luego forzar un Refresh de la tabla y en el evento ondraw comparar el valor de cierto campo que se esta dibujando con la variable y si es igual entonces se pinta. Asi no hay tardanza!!! Código:
filapintada:=ModuloDeDatos.QSeguimientoProspectacion.fieldbyname('idprospecto').asinteger;
dxdbgrid1.FullRefresh;
Código:
if modulodedatos.QSeguimientoProspectacion.fieldbyname('idprospecto').asinteger=filapintada then
begin
Acolor:=clyellow;
Afont.Color:=Clblack
end;
__________________
"Los unicos que no se equivocan son aquellos que no intentan hacer algo." Iván Caballero Cano... [email protected] |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|