TDBGridで、Fieldの値に応じて特定のセルの背景色を変えています。
方法は、OnDrawColumnCellイベント内で条件に応じて
TDBGrid(Sender).Canvas.Brush.Color := clRed;
などとし、最後に
TDBGrid(Sender).DefaultDrawColumnCell(Rect, DataCol, Column, State);
と実行するものです。
これによって背景色は望み通りに変わるのですが、
そのセルをクリックした際に、選択時の表示と競合してか、
真っ白(値が何か分からない)になってしまいます。
これを回避する方法はありますでしょうか?
背景色の色を変更する際に,
必要に応じてフォント色を変更してあげればどうでしょ?
DBGrid1.Canvas.Font.Color := clBlack;
DBGrid1.Canvas.Brush.Color := clYellow;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
なるほど。
選択状態であることも視認できればベストなのですが、
ひとまずはこれで十分用が足ります。
ありがとうございました。
ツイート | ![]() |