DBGridの使用方法(2)

 

値によって文字の色を変える
1行おきに行の色を変える
選択した行の特定のフィールド値を取得する
クリックした項目の値を取得する
1行おきに行の色を変える 10/11
10/11

DrawColumnCellのパラメータ「State」を利用し、セルが選択されている状態のときは背景色を変えないようにします。「State」については ヘルプで「TGridDrawState 型」をご参照下さい。
コードでは次のように条件文を追加します。


procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
//売上がマイナスなら赤く表示
if (Column.FieldName = 'URIAGE') and
(Column.Field.DataSet.FieldByName('URIAGE').AsCurrency < 0) then
DBGrid1.Canvas.Font.Color := clRed;
//偶数行の色を変える
if Column.Field.DataSet.RecNo Mod 2 = 0 then
if (not (gdSelected in State)) then (←追加)
DBGrid1.Canvas.Brush.Color := clSkyBlue;

//描画

DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;

 
10/11