Colorir primeira célula do dbgrid
04/06/2008
0
Bom dia pessoal, gostaria de saber como faço para colorir somente a primeira célula de um dbgrid..
hj faço dessa forma, mas ele colore a linha inteira..
tentei fazer da seguinte forma, mas ele fica estranho..como se tivesse fazendo um loop...
alguém teria uma solução melhor para mim???? colorindo a linha inteira fica mto colorido e cansativo para o usuário..
hj faço dessa forma, mas ele colore a linha inteira..
procedure TfrmNaoFinalizadas.dbgOcorrenciaDrawColumnCell( Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin If DM.QSituacaoOcorrenciaCODNIVELURGENCIA.Value = 1 then begin dbgOcorrencia.Canvas.Font.Color:= clBlack; dbgOcorrencia.Canvas.Brush.Color:= $008888FF; end else If DM.QSituacaoOcorrenciaCODNIVELURGENCIA.Value = 2 then begin dbgOcorrencia.Canvas.Font.Color:= clBlack; dbgOcorrencia.Canvas.Brush.Color:= clYellow; end else If DM.QSituacaoOcorrenciaCODNIVELURGENCIA.Value = 3 then begin dbgOcorrencia.Canvas.Font.Color:= clBlack; dbgOcorrencia.Canvas.Brush.Color:= $00FFEBD7; end; end;
tentei fazer da seguinte forma, mas ele fica estranho..como se tivesse fazendo um loop...
procedure TfrmNaoFinalizadas.dbgOcorrenciaDrawColumnCell( Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin If DM.QSituacaoOcorrenciaCODNIVELURGENCIA.Value = 1 then begin dbgOcorrencia.Canvas.Font.Color:= clBlack; dbgOcorrencia.Columns[0].Color:= $008888FF; end else If DM.QSituacaoOcorrenciaCODNIVELURGENCIA.Value = 2 then begin dbgOcorrencia.Canvas.Font.Color:= clBlack; dbgOcorrencia.Columns[0].Color:= clYellow; end else If DM.QSituacaoOcorrenciaCODNIVELURGENCIA.Value = 3 then begin dbgOcorrencia.Canvas.Font.Color:= clBlack; dbgOcorrencia.Columns[0].Color:= $00FFEBD7; end;
alguém teria uma solução melhor para mim???? colorindo a linha inteira fica mto colorido e cansativo para o usuário..
Jm
Curtir tópico
+ 0
Responder
Posts
10/06/2008
Fabianosales
Você já tentou usar o evento OnDrawDataCell?
O código ficaria assim:
O código ficaria assim:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState); begin if Field.Name = ´NOME_DO_CAMPO_A_SER_COLORIDO´ then case integer(Field.Value) of 1 : DBGrid1.Canvas.Brush.Color := $008888FF; 2 : DBGrid1.Canvas.Brush.Color := clYellow; 3 : DBGrid1.Canvas.Brush.Color := $00FFEBD7; end; DBGrid1.Canvas.Font.Color := clBlack; end;
Responder
Clique aqui para fazer login e interagir na Comunidade :)