永发信息网

delphi dbgrid改变行背景色

答案:2  悬赏:30  手机版
解决时间 2021-04-11 05:57
  • 提问者网友:棒棒糖
  • 2021-04-10 06:23
procedure TfrmTemp.dbgrdh1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
begin
if dbgrdh1.DataSource.DataSet.FieldByName('Mark').AsString = '未编码物料' then
begin
(Sender as TDBGridEh).Canvas.Brush.Color := clRed;
(Sender as TDBGridEh).DefaultDrawDataCell(Rect, Column.Field, State);
end;

end;
提示错误:
[DCC Error] UFrmTemp.pas(459): E2010 Incompatible types: 'DBGridEh.TGridDrawState' and 'UFrmTemp.TGridDrawState' 怎么回事?
最佳答案
  • 五星知识达人网友:鱼芗
  • 2021-04-10 07:40
看看USES引用里面,引用的标签里面有相同方法的去掉一个就可以了。或者你用方法的时候指定一下是哪个标签。
全部回答
  • 1楼网友:从此江山别
  • 2021-04-10 09:04
可以在dbgrid的drawcolumncell事件里面控制 uses strutils; procedure tform1.dbgrid1drawcolumncell(sender: tobject; const rect: trect; datacol: integer; column: tcolumn; state: tgriddrawstate); begin if ansistartstext('张', adotable1.fieldbyname('name').asstring) then (sender as tdbgrid).canvas.brush.color := clred; //(sender as tdbgrid).canvas.font.color := clred;//如果改字体颜色用这个 (sender as tdbgrid).defaultdrawdatacell(rect, column.field, state); end;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯