DBGrid - cores diferentes por campo |
Top Previous Next |
|
// Propriedade no ObjectInspector
DBGrid.DefaultDrawing := False;
// Evento
procedure TForm2.DBGrid1DrawColumnCell; begin If Table1.FieldbyName('Valor').AsFloat < 0 then // O valor é negativo... DBGrid1.Canvas.Font.Color := clRed else DBGrid1.Canvas.Font.Color := clBlack;
If State=[gdSelected,gdFocused] then // Se estive marcado Begin If Table1.FieldbyName('Valor').AsFloat < 0 then // O valor é negativo... DBGrid1.Canvas.Font.Color := clAqua else DBGrid1.Canvas.Font.Color := clYellow; DBGrid1.Canvas.Brush.Color:= clBlack; /// Fundo preto end;
If DataCol=0 then // DataCol: 0=primeira columa, 1=segunda... DBGrid1.DefaultDrawDataCell(Rect, Table1.FieldbyName('Descricao'), State) else DBGrid1.DefaultDrawDataCell(Rect, Table1.FieldbyName('Valor'), State) // OU PODE USAR ASSIM
DBGrid1.DefaultDrawDataCell(Rect, Table1.Fields[ DataCol ], State); // A ordem da DBGrid.TColums deve ser a mesma da TFieldsEditor end;
// Outro...
DBGrid3.Canvas.Font.Color := clBlack; If Tb_Quarto2ReservadoHoje.asBoolean then DBGrid3.Canvas.Font.Color := clRed; If State=[gdSelected,gdFocused] then // Se estive marcado Begin DBGrid3.Canvas.Font.Color := clYellow; DBGrid3.Canvas.Brush.Color:= clNavy; /// Fundo azul If Tb_Quarto2ReservadoHoje.asBoolean then DBGrid3.Canvas.Font.Color := clAqua; end; DBGrid3.DefaultDrawDataCell(Rect, Tb_Quarto2NQuarto, State) |