DBGrid双击后颜色能不能修改?

jiaxianglei 2007-11-02 09:39:26
DBGrid1双击后把该条记录的内容写入Memo1中,同时该条记录的颜色想换一下以表明该条记录已选过
双击多条记录后,双击过的记录都变一下颜色
能不能实现?
...全文
67 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaxianglei 2007-11-05
  • 打赏
  • 举报
回复
procedure TfrmTyxwbl.DBGridEh5DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
begin
with (Sender as TDBGridEh).Canvas do
begin
if ADOQuery5.FieldByName('IsSel').AsBoolean then
begin
Brush.Color:=clSkyBlue;
FillRect(Rect);
DBGridEh5.DefaultDrawColumnCell(Rect,DataCol,Column,
[gdFixed,gdFocused,gdSelected]);
end
else
begin
Brush.Color:=clBtnFace;
FillRect(Rect);
DBGridEh5.DefaultDrawColumnCell(Rect,DataCol,Column,
[gdFixed,gdFocused,gdSelected]);
end;
end;
end;
lyguo 2007-11-03
  • 打赏
  • 举报
回复
或你双击后,让这条记录消失行不?
lyguo 2007-11-03
  • 打赏
  • 举报
回复
那你还不如在GRIDE中加CHECKBOX 这样不更好看一些?
jiaxianglei 2007-11-03
  • 打赏
  • 举报
回复
with (Sender as TDBGridEh).Canvas do
begin
if ADOQuery5.FieldByName('IsSel').AsBoolean then
begin
Brush.Color:=clSkyBlue;
FillRect(Rect);
DBGridEh5.DefaultDrawColumnCell(Rect,DataCol,Column,[gdFixed,gdFocused,gdSelected]);
end
else
begin
Brush.Color:=clBtnFace;
FillRect(Rect);
DBGridEh5.DefaultDrawColumnCell(Rect,DataCol,Column,[gdFixed,gdFocused,gdSelected]);
end;
end;
jiaxianglei 2007-11-02
  • 打赏
  • 举报
回复
不行呀
DBGrid1双击后把该条记录的内容写入Memo1中,同时该条记录的颜色想换一下以表明该条记录已选过
cnzzlp 2007-11-02
  • 打赏
  • 举报
回复
在数据库中扩展字段记录是否修改,然后在
http://www.delphibbs.com/keylife/iblog_show.asp?xid=27763
然后
在 DBGrid.OnDrawColumnCell(...) 中:

begin
if TableField.AsInteger < 0 then
DBGrid.Canvas.Font.Color := clRed
else
DBGrid.Canvas.Font.Color := clBlack;
DBGrid.DefaultDrawColumnCell(...);
end;
jiaxianglei 2007-11-02
  • 打赏
  • 举报
回复
我是在delphi2007中,控件是DBGridEh,有没有代码,能详细一点吗?急用呀,或者是三方控件?
brightyang 2007-11-02
  • 打赏
  • 举报
回复
可以的吧~~

自已改一下dbgrid试试
xinyu7737 2007-11-02
  • 打赏
  • 举报
回复
表中加字段isSel,如果双击后则为true
with (Sender as TDBGridEh).Canvas do
begin
if ADOQuery1.fieldbyname('Xwlx').AsString='通用类询问笔录' then
if ADOQuery1.fieldbyname('isSel').AsBoolean=true then
begin
Brush.Color :=clSkyBlue;
FillRect(Rect);
TextOut(Rect.Left, Rect.Top, Column.Field.DisplayText);
end
else
begin
Brush.Color :=clBtnFace;
FillRect(Rect);
TextOut(Rect.Left, Rect.Top, Column.Field.DisplayText);
end;
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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