Colorir celula DBGrid
Caros amigos estou com a seguinte dúvida:
Como posso fazer para colorir a celula do dbgrid na seguinte situação:
if tempo1 > tempo2 then
begin
dbgrid.CelulaQueGuardaOTempo := Verde;
else
begin
dbgrid.CelulaQueGuardaOTempo := Vermelho;
end;
Onde ´tempo1´ é o tempo determinado e ´tempo2´ é o tempo real de entrega.
Então se o tempo determinado for maior que o tempo real: ok carga entregue dentro do tempo, a celula ´tempo´ recebe a cor verde. Caso o contrário a carga não foi entregue no tempo, então a celula ´tempo´ recebe a cor vermelha.
Obrigado a todos.
Como posso fazer para colorir a celula do dbgrid na seguinte situação:
if tempo1 > tempo2 then
begin
dbgrid.CelulaQueGuardaOTempo := Verde;
else
begin
dbgrid.CelulaQueGuardaOTempo := Vermelho;
end;
Onde ´tempo1´ é o tempo determinado e ´tempo2´ é o tempo real de entrega.
Então se o tempo determinado for maior que o tempo real: ok carga entregue dentro do tempo, a celula ´tempo´ recebe a cor verde. Caso o contrário a carga não foi entregue no tempo, então a celula ´tempo´ recebe a cor vermelha.
Obrigado a todos.
Ricklorente
Curtidas 0
Respostas
Woinch
16/03/2009
Você pode fazer isso utilizando o evento OnDrawDataCell do DBGrid. Veja um exeplo:
Apenas adapte esse exemplo para a sua situação.
Espero ter ajudado.
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState); begin DBGrid1.Canvas.Brush.Color := clRed; //Pinta de vermelho o fundo de todas as células do DBGrid end;
Apenas adapte esse exemplo para a sua situação.
Espero ter ajudado.
GOSTEI 0
Ricklorente
16/03/2009
Amigo, obrigado pela ajuda, porém eu quero pintar somente as celulas da coluna x e não a linha inteira.
Obrigado.
Obrigado.
GOSTEI 0
Woinch
16/03/2009
Para isso basta utilizar a propriedade Field desse evento.
Veja:
Veja:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState); begin if ((gdSelected in State) and (gdFocused in State)) then DBGrid1.Canvas.Font.Color := clBlack; if (Field.FieldName = ´NomeDaColuna´) then DBGrid1.Canvas.Brush.Color := clRed; DBGrid1.DefaultDrawDataCell(Rect, Field, State); end;
GOSTEI 0