Fórum Ajustando Valor de quot;Célulaquot; em DBGrid #331365
17/10/2006
0
Estou utilizando o código abaixo para melhorar a visualização dos dados:
DBGridDrawColumnCell; begin If Odd((Sender AS TDBGrid).DataSource.DataSet.RecNo) Then begin (Sender AS TDBGrid).Canvas.Font.Color := $00484824; (Sender AS TDBGrid).Canvas.Brush.Color := clWhite; end Else begin (Sender AS TDBGrid).Canvas.Font.Color := clBlack; (Sender AS TDBGrid).Canvas.Brush.Color := $00B3FFFF; end; (Sender AS TDBGrid).Canvas.FillRect(Rect); (Sender AS TDBGrid).Canvas.TextOut(Rect.Left+2, Rect.Top, Column.Field.AsString); end;
Até aí tudo bem, está funcionando normalmente, mas quando quero ´colorir´ alguma célula específica não funciona:
Eis o código que estou usando:
DBGridDrawDataCell; If (Field.FullName = ´Quantidade´) AND (Field.AsInteger < 4) Then begin DBGrid.Canvas.Font.Color := clYellow; DBGrid.Canvas.Brush.Color := $005353FF; end;
Algum dos amigos sabe se há algum erro aí em cima ?
Abraços e Bons Códigos :wink:
Paulocesar1301
Curtir tópico
+ 0Posts
17/10/2006
Paulocesar1301
(Sender AS TDBGrid).Canvas.FillRect(Rect);
(Sender AS TDBGrid).Canvas.TextOut(Rect.Left+2, Rect.Top, Field.AsString);
Gostei + 0
17/10/2006
Paulocesar1301
ONDrawColumnCell; If (Column.Field.FullName = ´Quantidade´) Then begin If (Column.Field.AsInteger < 4) Then begin (Sender AS TDBGrid).Canvas.Font.Color := clYellow; (Sender AS TDBGrid).Canvas.Brush.Color := clRed; end Else If (Column.Field.AsInteger >= 4) Then begin (Sender AS TDBGrid).Canvas.Font.Color := clWhite; (Sender AS TDBGrid).Canvas.Brush.Color := $00007700; end; end; (Sender AS TDBGrid).Canvas.FillRect(Rect); (Sender AS TDBGrid).Canvas.TextOut(Rect.Left+2, Rect.Top, Column.Field.AsString);
Eu só ainda não sei como coloco os dados centralizados na célula, mas isso é apenas porpurina... caso alguém saiba
Gostei + 0
17/10/2006
Renato.pavan
[]´s
Renato.
Gostei + 0
17/10/2006
Renato.pavan
Centralizando...
var i: integer; s: string; begin s := Column.Field.Text i := DBGrid1.Canvas.TextWidth( s ); DBGrid1.Canvas.TextOut(Rect.Left + (Rect.Right - Rect.Left - i) div 2, Rect.Top + 2, s); end;
Gostei + 0
17/10/2006
Paulocesar1301
Show de bola !!!
Valeu msm !!!
No que precisar e eu puder ajudar... é só falar !!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)