在线等待 dbgrid中 选中的都变色

laokaizzz 2010-03-24 11:30:49
我想达到这样的效果,就是多选后,被选中的行都变色
不改动数据表的情况下,达到要求
...全文
77 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
timothy888 2010-03-26
  • 打赏
  • 举报
回复
type
Tint=0..255;
tmyint=set of Tint;



private
{ Private declarations }
mynums:tmyint;



procedure TArrangeTask.db_arrangetaskCellClick(Column: TColumn);
var
ls:integer;
begin
//显示套料任务的零件明细信息

ls := qry_arrangetask.RecNo;

//如果存在就移除,否则添加
if ls in mynums then
Exclude(mynums,ls)
else
Include(mynums,ls);

//重新刷新下绑定是为了能触发重绘,实时绘
qry_arrangetask.close;
qry_arrangetask.open;
qry_arrangetask.RecNo:=ls;
end;

procedure TArrangeTask.db_arrangetaskDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if qry_arrangetask.RecNo in mynums then
begin
db_arrangetask.Canvas.Brush.Color := clSkyBlue;
db_arrangetask.Canvas.Font.Color := clBlack;
end;
db_arrangetask.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
laokaizzz 2010-03-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mwy654321 的回复:]
在OnDrawDataCell事件中处理可以实现多选,顶下你的40分贴子。
[/Quote]
多选可以达到,但是,我想多选的同时,被选中的颜色都变。具体代码怎么样的,能提供一点么
无条件为你 2010-03-24
  • 打赏
  • 举报
回复
在OnDrawDataCell事件中处理可以实现多选,顶下你的40分贴子。
laokaizzz 2010-03-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bdmh 的回复:]
在OnDrawDataCell事件中处理
其中有一个参数State: TGridDrawState,可以判断状态

TGridDrawState = set of (gdSelected, gdFocused, gdFixed);
[/Quote]

这样的话好像只能到达一行颜色变化的效果
我想按住ctrl键后,选中多行,每选中一行,那行的颜色就变化,结果多行的颜色都变
bdmh 2010-03-24
  • 打赏
  • 举报
回复
在OnDrawDataCell事件中处理
其中有一个参数State: TGridDrawState,可以判断状态

TGridDrawState = set of (gdSelected, gdFocused, gdFixed);
laokaizzz 2010-03-24
  • 打赏
  • 举报
回复
高手指导下
laokaizzz 2010-03-24
  • 打赏
  • 举报
回复
laokaizzz 2010-03-24
  • 打赏
  • 举报
回复
来人啊,指导啊

5,386

社区成员

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

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