Mudar a cor de um DBEdit dentro de um DBCtrlGrid de acordo com uma condição no Delphi
Problema: Uso um DBCtrlGrid e gostaria que, quando o valor de um determinado campo for negativo, o DBEdit ligado a este campo seja exibido em vermelho e, caso contrário, em azul. Isto é possível? Solução: - Monte o form normalmente colocando DataSource, Table, DBCtrlGrid e os DBEdit's, DBText's, etc. - Escreva no manipulador do evento OnPaintPanel do DBCtrlGrid conforme abaixo: procedure TForm1.DBCtrlGrid1PaintPanel(DBCtrlGrid: TDBCtrlGrid; Index: Integer); begin if Table.FieldByName('NomeDoCampo').AsFloat < 0 then DBEdit1.Font.Color := clRed else DBEdit1.Font.Color := clBlue; end;
Observações
Neste exemplo mudamos a cor da fonte do componente DBEdit, Porém, pode-se também mudar a cor do próprio componente (DBEdit1.Color).