DBGridで特定のセルの色を変更

解決


ひろ  2010-11-04 23:07:11  No: 39492

いつも大変お世話になっております。
データベースのデータを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;
等で解決できたのですが、特定のセルだけを変更したい場合は
どのようにしたら良いかご存知の方いらっしゃいましたら、お願いします。


Kenny  2010-11-05 01:15:02  No: 39493

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;

こんな感じで出来ないですか?


ひろ  2010-11-05 01:48:33  No: 39494

Kennyさん  早速のお返事ありがとうございました。
バッチリ出来ました  ありがとうございました。

以上


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加