Fórum Colorir linha DBGrid #185940
02/10/2003
0
Minha dbgrid colore a fonte da linha para vermelho conforme uma condição dos campos mostrados ( manipulado no evento DBGrid1DrawColumnCell). Até aí Ok. O problema é que quando a mesma está selecionada, eu preciso mudar a cor para evitar o forte contraste com a cor de seleção do Windows, mas após o comando executar a primeira coluna da linha continua em vermelho.
Agradeço a ajuda
if (condicao) then
begin
if (State = [gdSelected])then
begin
DBGrid1.Canvas.Font.Color := clWhite;
end
else
begin
DBGrid1.Canvas.Font.Color := clRed;
end;
end;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawDataCell(Rect, Column.Field, State);
Agradeço a ajuda
if (condicao) then
begin
if (State = [gdSelected])then
begin
DBGrid1.Canvas.Font.Color := clWhite;
end
else
begin
DBGrid1.Canvas.Font.Color := clRed;
end;
end;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawDataCell(Rect, Column.Field, State);
Ghibbli
Curtir tópico
+ 0
Responder
Posts
04/10/2003
P_lima
Use esta linha de comando, não sei se é o que vc quer, mas foi o que eu entendi. Abraço
Try
If TablePedi.FieldByName(´CAMPO TABELA´).AsString = ´P´ Then
Begin
DBGrid3.Canvas.Font.Color := clBlack;
DBGrid3.Canvas.Brush.Color := $00FFFF80;
End
Else If TablePedi.FieldByName(´CAMPO TABELA´).AsDateTime < Date Then
Begin
DBGrid3.Canvas.Font.Color := clBlack;
DBGrid3.Canvas.Brush.Color := clRed;
End
Else If TablePedi.FieldByName(´PED_DATA´).AsDateTime < Date Then
Begin
DBGrid3.Canvas.Font.Color := clBlack;
DBGrid3.Canvas.Brush.Color := $00B0FFFF;
End
Else
Begin
DBGrid3.Canvas.Font.Color := clBlack;
DBGrid3.Canvas.Brush.Color := clWhite;
End;
Except
End;
DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
// p_lima{...}
Try
If TablePedi.FieldByName(´CAMPO TABELA´).AsString = ´P´ Then
Begin
DBGrid3.Canvas.Font.Color := clBlack;
DBGrid3.Canvas.Brush.Color := $00FFFF80;
End
Else If TablePedi.FieldByName(´CAMPO TABELA´).AsDateTime < Date Then
Begin
DBGrid3.Canvas.Font.Color := clBlack;
DBGrid3.Canvas.Brush.Color := clRed;
End
Else If TablePedi.FieldByName(´PED_DATA´).AsDateTime < Date Then
Begin
DBGrid3.Canvas.Font.Color := clBlack;
DBGrid3.Canvas.Brush.Color := $00B0FFFF;
End
Else
Begin
DBGrid3.Canvas.Font.Color := clBlack;
DBGrid3.Canvas.Brush.Color := clWhite;
End;
Except
End;
DBGrid3.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
// p_lima{...}
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)