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' 怎么回事?
delphi dbgrid改变行背景色
答案:2 悬赏:30 手机版
解决时间 2021-04-11 05:57
- 提问者网友:棒棒糖
- 2021-04-10 06:23
最佳答案
- 五星知识达人网友:鱼芗
- 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;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯