![]() |
![]() |
| 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
|
||||
|
||||
|
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. |
|
#2
|
||||
|
||||
|
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] |
|
#3
|
||||
|
||||
|
¿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 |
|
#4
|
||||
|
||||
|
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. |
|
#5
|
||||
|
||||
|
Sí, lo sé. La pregunta era más bien para ecfisa, pues me extrañó que pudiera modificarse un campo calculado.
// Saludos |
|
#6
|
||||
|
||||
|
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] |
|
#7
|
||||
|
||||
|
Cabe señalara que obviamente los eventos y valores dependen del componente que usen como grid...
yo uso uno DXDBGRID (muy bueno) El problema de usar campos de una BD es que si es por internet se pone lenta la seleccion y el pintado y el cliente o Jefe buscan rapidez.. a ellos no les importa lo que suframos para lograr sus peticiones. jjeje
__________________
"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 |
|