PDA

Ver la Versión Completa : Lineas de colores en un DBGrid, el cual obtiene los datos de una Query en ejecución


judoboy
16-05-2003, 13:27:27
Pues eso, que como puedo hacer para que me pinte las lineas de uno u otro color dependiendo de una condición.

Si el DBGrid se alimenta de un TTable, lo hago en el envento
OnDrawColumnCell

y pongo lo siguiente

if ModuloDatos.Calendario.DataSet.FieldByName('TIPO').AsString = 'BAJA' then
begin
DBGCALENDARIO.Canvas.Brush.Color :=clRed;//color de fondo
DbgCalendario.Canvas.Font.Style:=[fsBold];
DBGCalendario.Canvas.Font.Color:=ClBlack;
DBGCalendario.DefaultDrawColumnCell(Rect,Datacol,Column,State);
end;

marcoszorrilla
16-05-2003, 15:13:34
He hecho una mezcla entre tus datos y la la tabla de ejemplo que viene con Delphi "DbDemos", Orders.

Sin campos persistentes y funciona perfectamente.

procedure TForm1.dbgcalendarioDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if Query1.FieldByName('Terms').AsString = 'FOB' then
begin
DBGCALENDARIO.Canvas.Brush.Color :=clRed;//color de fondo
DbgCalendario.Canvas.Font.Style:=[fsBold];
DBGCalendario.Canvas.Font.Color:=ClBlack;
DBGCalendario.DefaultDrawColumnCell(Rect,Datacol,Column,State);
end;
end;

Un Saludo.

__cadetill
16-05-2003, 15:29:11
Hola judoboy (hoy lo he escrito bien eh!!! :p )

En mi web, en el apartado de Delphi, tienes una demo de funcionamiento del RxDbGrid. En él puedes ver como hacer eso de pintar segun una condición

Espero te sirva

judoboy
16-05-2003, 16:47:08
Hola si esta vez, si lo has escrito bien ;). Mirare bien el ejemplo de tu web.

marcoszorilla, funciona perfecto, era lo que queria, gracias.