JonatasFn 0 Denunciar post Postado Outubro 23, 2009 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? Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Outubro 23, 2009 Dê uma lida neste artigo. []'s Compartilhar este post Link para o post Compartilhar em outros sites
JonatasFn 0 Denunciar post Postado Outubro 26, 2009 Neste artigo só deixa o DBGrid zebrado. Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Outubro 27, 2009 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 Compartilhar este post Link para o post Compartilhar em outros sites
Lancellotte 0 Denunciar post Postado Novembro 6, 2009 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 Compartilhar este post Link para o post Compartilhar em outros sites
alinesf4 0 Denunciar post Postado Março 19, 2013 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... Compartilhar este post Link para o post Compartilhar em outros sites
Eisenheim 67 Denunciar post Postado Março 20, 2013 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: Compartilhar este post Link para o post Compartilhar em outros sites
alinesf4 0 Denunciar post Postado Março 20, 2013 Jeferson obrigada, funcionou!!! Valew! Compartilhar este post Link para o post Compartilhar em outros sites