假如我的DBGrid的现实的数据如下 v1 v2 v3 v4
-----------------------
233 43 232 4
43 34 45 432
34 23 5 34
-----------------------
如何让这个DBGrid的cell如果是偶数,底色是红色,如果是奇数,底色是绿色?
-----------------------
233 43 232 4
43 34 45 432
34 23 5 34
-----------------------
如何让这个DBGrid的cell如果是偶数,底色是红色,如果是奇数,底色是绿色?
procedure TFormPETTemper.DBGrid1DrawDataCell(Sender: TObject;
const Rect: TRect; Field: TField; State: TGridDrawState);
begin
if Field.FieldByName('ddd').AsInteger mod 2 = 0 then
end;
procedure TfrmMain.grdMasterDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
if grdMaster.DataSource = Nil then Exit;
case grdMaster.DataSource.DataSet.FieldByName('v1').AsInteger Mod 2 of
0: grdMaster.Canvas.Brush.Color := clRed;
1: grdMaster.Canvas.Brush.Color := clGreen
end;
grdMaster.DefaultDrawDataCell(Rect, Column.Field, State);
end;
如果想改变字体的颜色,请将上述代码中的Canvas.Brush.COlor改为Canvas.Font.Color即可。
你这里的Column.Field是什么,为什么我打上去会编译不过去?
放入DBGrid1DrawDataCell事件中即可~~