Ver Mensaje Individual
  #9  
Antiguo 23-02-2008
Avatar de RoyTan
RoyTan RoyTan is offline
Miembro
 
Registrado: oct 2003
Ubicación: Mijas - Málaga
Posts: 121
Reputación: 21
RoyTan Va por buen camino
Hola gluglu.

Gracias por soportar mi ignorancia y mi pesadez.

Si el código lo he puesto en el evento ondrawcolumncell.

El código que me has pasado pinta la linea completa, pero eso no es lo que necesito.

Yo necesito que pinte una celda nada más, no la linea completa.
Ejemplo:

Mi DBGrid tiene 5 columnas, Fecha,Concepto,Ingresos,Gastos y Saldo.

Tan solo necesito que si en la columna saldo hubiese algun valor negativo pues sencillamente que pinte esa celda de rojo, solo donde está el valor negativo.

Bueno y el código con el que lo estoy intentando es el siguiente.

procedure TF_Caja.DBGCajaDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin

if Column.Field.Dataset.FieldbyName('SALDO').AsFloat < 0 then
if (gdFocused in State) then
Begin
DBGCaja.canvas.brush.color := clBlue;
end
else
Begin
DBGCaja.Columns[5].Font.Color := clRed; // este para el Texto
DBGCaja.DefaultDrawColumnCell(rect,DataCol,Column,State);
end;

End;

Espero y deseo no molestar mucho.

Gracias.
Responder Con Cita