Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, eu queria saber se tem como eu alterar as linhas do BDGrid. Alterar a cor eu consigo, mas eu queria de acordo com o registro.
Eu estou preenchendo o DBGrid com um DataSource, eu queria que quando o registro de uma determinada coluna fosse Debito, a linha ou o texto ficasse vermelha e quando fosse Crédito ficasse Verde.
Tem como?
Neste artigo só deixa o DBGrid zebrado.
Amigo,
A idéia quando sugeri que lesse este artigo foi que você o adaptasse as suas necessidades, visto que o mesmo já lhe dá recursos para tanto. Vejamos:
1°) Ele já lhe indica qual evento do dbgrid deve usar para montar sua solução do problema.
2°) Já mostra como pintar a linha da cor desejada e não perder as informações.
3°) Tem um teste mostrando uma idéia de como controlar onde e quando mudar a cor da linha.
Dê uma lida com calma no artigo, analise o código e veja onde precisa alterar para resolver seu problema...
[]'s
Não cheguei a ler o artigo que o chrnos citou
porque o link parece estar quebrado ou off
Acho que voce esta querendo alguma coisa parecida com isso
Procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
Begin
if Table1.FieldByName('NomeDoCampo').Value = 'Crédito' then
DBGrid1.Canvas.Brush.Color := clGreen;
if Table1.FieldByName('NomeDoCampo').Value = 'Debito' then
DBGrid1.Canvas.Brush.Color := clRed;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawDataCell(Rect,Field,State);
end;
Flw's
Abraço
Olá pessoal!!!!
Estou tenando colocar cores conforme dados do banco de dados....mas não esta funcionando, qndo eu abrir o formulário preciso que ja apareça com cores diferentes....
Segue o código...
procedure TFGridFaturas.DBGridFATURADrawDataCell(Sender: TObject;
const Rect: TRect; Field: TField; State: TGridDrawState);
begin
if DMCADASTRO.TBGRIDFATURA.FileName.value('PAGO') = 'SIM' then
begin
DBGridFATURA.Canvas.Brush.Color := clRed;
end;
if DMCADASTRO.TBGRIDFATURA.FieldByName('ANULADO').Value = 'NAO' then
DBGridFATURA.Canvas.Brush.Color := clRed;
DBGridFATURA.Canvas.FillRect(Rect);
DBGridFATURA.DefaultDrawDataCell(Rect,Field,State);
end;
Por favor se alguém puder me ajudar...Olá amigo.
Experimente colocar isso no evento OnDrawColumnCell do seu DBGrid.
DBGridFATURA.Canvas.Font.Color := clBlack;
if DMCADASTRO.TBGRIDFATURA.FileName.value('PAGO') = 'SIM' then
begin
DBGridFATURA.Canvas.Font.Color := clRed;
end;
if DMCADASTRO.TBGRIDFATURA.FieldByName('ANULADO').Value = 'NAO' then
DBGridFATURA.Canvas.Font.Color := clRed;
DBGridFATURA.DefaultDrawColumnCell( Rect, DataCol, Column, State);
Aqui eu utilizo algo semelhante, acredito que resolverá seu problema.
Até a próxima. :thumbsup:
Jeferson obrigada, funcionou!!!
Valew!
Dê uma lida neste artigo.
[]'s