点击DBGridEh单元格后,让单元格变色(不是整行变色),怎么搞?

nimeide1234567890 2017-07-28 10:54:35
点击DBGridEh单元格后,让单元格变色(不是整行变色),怎么搞?

DBGridEh1DrawDataCell事件在点击后不会触发,为什么点击不会触发?
DBGridEh1DrawColumnCell事件里能实现吗?

注示:要的是点击后变色
...全文
1075 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
coderee 2017-08-20
  • 打赏
  • 举报
回复
路过,楼上正解。
doloopcn 2017-08-04
  • 打赏
  • 举报
回复
试一下暴力方法,没有上机测试过 在代码中添加 先在FORM中定义好一个DrawDataCel事件,然后: TDBGrid(DBGridEh1).DrawDataCell:='你自己写的DrawDataCel事件';
nimeide1234567890 2017-07-31
  • 打赏
  • 举报
回复
引用 3 楼 hongss 的回复:
DBGridEh里有个DBGrid里没有的属性,DBGridEh1.Columns.Grid.RectCell( Acol, Rcol ) 可以用这个结合 DrawColumnCell ,来改变单元格颜色
高人能否贴上DBGrid做法的代码?
hongss 2017-07-29
  • 打赏
  • 举报
回复
DBGridEh里有个DBGrid里没有的属性,DBGridEh1.Columns.Grid.RectCell( Acol, Rcol ) 可以用这个结合 DrawColumnCell ,来改变单元格颜色
nimeide1234567890 2017-07-28
  • 打赏
  • 举报
回复
引用 1 楼 lyhoo163 的回复:
一般在onDrawColumnCell事件中处理 例如:

procedure TMainForm.DBGrid1DrawColumnCell(Sender: TObject;const Rect: TRect; DataCol: Integer; Column: TColumn;State: TGridDrawState);
var i :integer;
begin
  if (Column.FieldName='ITEM_TYPE') and                                         // 指定字段名
     (DbGridEh1.DataSource.DataSet.FieldByName('ITEM_TYPE').AsString='P') then  // 指明 Cell的值
        DbGridEh1.Canvas.Brush.color:=clred;
  DbGridEh1.DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;
这个在点击后能触发? 并改变这个单元格的颜色吗?
lyhoo163 2017-07-28
  • 打赏
  • 举报
回复
一般在onDrawColumnCell事件中处理 例如:

procedure TMainForm.DBGrid1DrawColumnCell(Sender: TObject;const Rect: TRect; DataCol: Integer; Column: TColumn;State: TGridDrawState);
var i :integer;
begin
  if (Column.FieldName='ITEM_TYPE') and                                         // 指定字段名
     (DbGridEh1.DataSource.DataSet.FieldByName('ITEM_TYPE').AsString='P') then  // 指明 Cell的值
        DbGridEh1.Canvas.Brush.color:=clred;
  DbGridEh1.DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧