Colorir a linha no stringgrid dependendo do resultado
Pessoal como eu faço para colorir a linha do stringgrid depedendo do resultado.
Estou tentando conforme o código abaixo mais o trem não funciona de forma alguma
procedure TFrmVisualizaUniCod.GridDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
inherited;
///
If Grid.Cells[0,0] = 'Entrada Mecadoria' Then
Grid.Canvas.Brush.Color := $00FFEFDF;
{
if (ARow <> 0) and ((ARow mod 2) = 0) then
begin
Grid.Canvas.Brush.Color := $00FFEFDF; // define cor de fundo
Grid.Canvas.FillRect(Rect); // pinta a célula
Grid.Canvas.Font.Color := clBlack;
DrawText(Grid.Canvas.Handle,PChar(Grid.Cells[ACol,
ARow]), - 1, Rect, DT_VCENTER or DT_LEFT or
DT_SINGLELINE);
end; }
///
end;
Estou tentando conforme o código abaixo mais o trem não funciona de forma alguma
procedure TFrmVisualizaUniCod.GridDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
inherited;
///
If Grid.Cells[0,0] = 'Entrada Mecadoria' Then
Grid.Canvas.Brush.Color := $00FFEFDF;
{
if (ARow <> 0) and ((ARow mod 2) = 0) then
begin
Grid.Canvas.Brush.Color := $00FFEFDF; // define cor de fundo
Grid.Canvas.FillRect(Rect); // pinta a célula
Grid.Canvas.Font.Color := clBlack;
DrawText(Grid.Canvas.Handle,PChar(Grid.Cells[ACol,
ARow]), - 1, Rect, DT_VCENTER or DT_LEFT or
DT_SINGLELINE);
end; }
///
end;
Douglas Fernandes
Curtidas 0
Respostas
Emerson Nascimento
22/03/2010
pelo jeito você está tentando colorir a primeira célula. se for uma célula Fixa, a cor usada será aquela indicada na propriedade FixedColor.
GOSTEI 0
Wilson Junior
22/03/2010
De uma olhada neste link http://www.activedelphi.com.br/forum/viewtopic.php?t=15612&highlight=stringgrid+ondrawcell
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Thiago Santana
22/03/2010
Tenta algo do tipo:
procedure TFrmteste.RxDBGrid1GetCellParams(Sender: TObject;
Field: TField; AFont: TFont; var Background: TColor; Highlight: Boolean);
begin
if (Sender as TJvDBGrid ).DataSource.DataSet.FieldByName('C_Desativado').AsInteger = 1 then begin
AFont.Color := clRed;
Background := clWhite;
Field: TField; AFont: TFont; var Background: TColor; Highlight: Boolean);
begin
if (Sender as TJvDBGrid ).DataSource.DataSet.FieldByName('C_Desativado').AsInteger = 1 then begin
AFont.Color := clRed;
Background := clWhite;
GOSTEI 0
Douglas Fernandes
22/03/2010
ThiiaGuinho estou usando o StringGrid e não o DBgrid, mais valeu pela dica.
Emerson estou tentando colorir a linha toda dependendo do que esta na primeira celula
Wilson o link que você postou me parece ser o melhor para trabalhar em cima dele, irei dar uma olhada aqui
e caso funcione irei postar o resultado... valeu
Emerson estou tentando colorir a linha toda dependendo do que esta na primeira celula
Wilson o link que você postou me parece ser o melhor para trabalhar em cima dele, irei dar uma olhada aqui
e caso funcione irei postar o resultado... valeu
GOSTEI 0
Douglas Fernandes
22/03/2010
Prezados valeu, junto com o exemplo que o Wilson tinha deijado eu montei uma solução que foi melhor pra mim. Valeu.
procedure TFrmVisualizaUniCod.GridDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
Var
VLinha : Integer;
begin
inherited;
with Grid do
begin
If Cells[10,ARow] = '0' Then
Begin
VLinha := ARow;
Canvas.Font.Color := clBlack;
Case ARow of
0: Canvas.brush.Color:=$00F0FE9E;
1: Canvas.brush.Color:=$00F0FE9E;
2: Canvas.brush.Color:=$00F0FE9E;
3: Canvas.brush.Color:=$00F0FE9E;
4: Canvas.brush.Color:=$00F0FE9E;
5: Canvas.brush.Color:=$00F0FE9E;
6: Canvas.brush.Color:=$00F0FE9E;
7: Canvas.brush.Color:=$00F0FE9E;
8: Canvas.brush.Color:=$00F0FE9E;
9: Canvas.brush.Color:=$00F0FE9E;
End;
End;
End;
procedure TFrmVisualizaUniCod.GridDrawCell(Sender: TObject; ACol,
ARow: Integer; Rect: TRect; State: TGridDrawState);
Var
VLinha : Integer;
begin
inherited;
with Grid do
begin
If Cells[10,ARow] = '0' Then
Begin
VLinha := ARow;
Canvas.Font.Color := clBlack;
Case ARow of
0: Canvas.brush.Color:=$00F0FE9E;
1: Canvas.brush.Color:=$00F0FE9E;
2: Canvas.brush.Color:=$00F0FE9E;
3: Canvas.brush.Color:=$00F0FE9E;
4: Canvas.brush.Color:=$00F0FE9E;
5: Canvas.brush.Color:=$00F0FE9E;
6: Canvas.brush.Color:=$00F0FE9E;
7: Canvas.brush.Color:=$00F0FE9E;
8: Canvas.brush.Color:=$00F0FE9E;
9: Canvas.brush.Color:=$00F0FE9E;
End;
End;
End;
GOSTEI 0
Wilson Junior
22/03/2010
Ótimo que foi resolvido.
GOSTEI 0