いつも大変お世話になっております。
データベースのデータをDBGridで表示しています。
特定のセルの色を変更したいのですが、うまくいきません。
例えば、給与情報が有り、月額50万円超える人の給与額だけを
色を変えたいのです。
例
社員CD 社員名 月額給与
000001 田中 300,000
000002 鈴木 400,000
000003 佐藤 550,000 ← 550,000だけを色変更。
行単位では、
IF Oracledataset1.FieldByName('月額給与').AsInteger > 500000 THEN
DBGrid1.Canvas.Font.Color := clred
ELSE
DBGrid1.Canvas.Font.Color := clBLUE;
等で解決できたのですが、特定のセルだけを変更したい場合は
どのようにしたら良いかご存知の方いらっしゃいましたら、お願いします。
DBGridのOnDrawColumnCellイベントで
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if Column.Field.Value >500000 then
begin
DBGrid1.Canvas.Brush.Color := clGreen; //背景緑
DBGrid1.Canvas.Font.Color := clWhite; //文字白抜き
end;
if Column.Index=2 then //給与フィールドのindex番号を指定
DBGrid1.DefaultDrawColumnCell(Rect, Datacol, Column, State);
end;
こんな感じで出来ないですか?
Kennyさん 早速のお返事ありがとうございました。
バッチリ出来ました ありがとうございました。
以上
ツイート | ![]() |