如何在DBGrid里实现Shift+“选择行”区间多选的功能! 类似于Windows中使用Shift实现多选的功能! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在option属性里看看,关于它多选的属性都在那里了。 沒有,裡面隻有dgMutiSelect是實現多選的,不過隻能通過CTRL一次加多一條. DELPHI 的TDBGrid 控 件 主 要 用 来 处 理 数 据 表, 它 的 属 性 中 有 一 个dgMultiSelect, 若 此 属 性 设 定 为TRUE, 则 可 以 选 中 多 个 记 录( 可 用CTRL + 鼠 标 左 键 选 择 多 个 记 录)。 对 选 中 的 多 个 记 录可 以 有 以 下 几 种 处 理 方 式, 比 较 简 单 的 两 种 是: 清 除 所 有的 选 择 记 录 可 用DBGrid1.SelectedRows.Clear 语 句; 删 除 所 有 的 选 择 记 录 可 用DBGrid1.SelectedRows.Delete 语 句。 但 如 果 想 获 得 选 中 的 所 有 记 录 的 其 他 信 息, 比 如, 在 单 独 的 一 个 窗 体 中 显 示用 户 选 择 的 记 录 的 第 一 个 字 段 的 内 容( 如 所 有 选 择 的 姓 名)如 何 处 理 呢 ? 这 就 要 使 用 书 签 功 能 了, 下 面 是 笔 者 编 写 的一 个 程 序 中 的 过 程, 用 来 将 用 户 选 择 的 多 个 记 录 集 中 显 示 在 另 外 一 个 窗 体 中( 笔 者 使 用 的 是DELPHI4), 供 参 考 使 用。procedure GetSelectedRecord(DataSet : TDataSet; FieldName : String;BookList : TBookList; Strings : TStrings);file://这个过程中的参数分别为:数据表、字段名称、书签、用来保存所选字段内容的file://字符串(用于将内容传递到另一个单独窗体中的TLIST控件中)varI: Integer;bm : TBookMark;beginStrings.Clear;with Dataset do beginDisableControls;bm := GetBookMark;tryfile://每个选择的记录都有一个书签标志,这就为处理它们提供了条件for I := 0 to BookList.Count - 1 do beginBook := BookList[I];Strings.Add(DataSet.FindField(fieldname).AsString);end;finallyGotoBookMark(bm);FreeBookMark(bm);EnableControls;end;end;end;调用举例:GetSelectedRecord(Table1, 'NAME', DBGrid1.SelectedRows, Form2.ListBox1.Items 倒~~~,這個網上經常看倒啊,但是樓主是要實現"多選的方式",即,先選定一條記錄做為開始的記錄,然後按住shift,再選擇另外一條,那麼,就需要兩次鼠標點擊的兩筆記錄之間的記錄全部被選定(包含這兩筆記錄) dgMutiSelect隻能通過CTRL一次加多一條 DBgrid-->Options-->dgMutiSelect=True 判断一下SHIFT键按下没有,再选中出两次鼠标点击的记录不就行了吗 的确,我所要实现的功能即suton(suton) 所说的,因为压住ctrl选择一条一条的点太费劲了,有时可能遇到上白条记录需要选择。所以想找一个简单的可以多选的方法。 在onclick事件裡面判斷shift鍵是否被按下? 同意things(平) (男儿在他乡,焉得不憔悴!) ,简洁! onclick事件中判断Shift是否按下,之后还要记录起始记录的位置和结束记录的位置,然后计算之间的所有记录,并使这些记录被选种,这似乎有些烦琐。我想知道是否有比这样用代码实现更简洁的方法,因为这个功能在平时是个挺常用的一个功能。 记好上一次选择的记录,当按Shift并点选择记录后,则将上一次先的记录号开始逐条加入书签。 用二公共变量记录开始选中记录与最终选中记录,然后在DrawCell事件中给两行之间的行加上点颜色,表示被选中。鄙人从干过这样的事,做起来要控制的细微点 我有个想法,可不可以让程序模拟系统处理CTRL+鼠标单击的事件来处理呀,但我还不是很清楚程序模拟系统事件是怎么具体实现的,我想这个一定可以的!请各位高手试试看! 怎样遍历ScrollBox1控件里的控件,并释放删除? mscomm 控件 怎么关掉啊? Word对象 疑难杂症!!! 一个关于treeview节点的修改的问题,怎样修改一个节点使其所有的子节点自动修改? 关于select + on + like 只取首条匹配记录求教-----很有难度 如何用Http协议传送文件 除UP者外,皆有分 在线等 <<Delphi 6程序设计从入门到精通>> 这本书怎么样? 我快疯了救救我!!!!!!!!!! delphi7文件保存错误 如何将程序缩小到任务栏? 用户在文本框中输入算式,如:2*3+4*6,在程序中有什么简单方法计算其结果?
一 个dgMultiSelect, 若 此 属 性 设 定 为TRUE, 则 可 以 选 中 多 个 记 录
( 可 用CTRL + 鼠 标 左 键 选 择 多 个 记 录)。 对 选 中 的 多 个 记 录
可 以 有 以 下 几 种 处 理 方 式, 比 较 简 单 的 两 种 是: 清 除 所 有
的 选 择 记 录 可 用DBGrid1.SelectedRows.Clear 语 句; 删 除 所 有 的 选
择 记 录 可 用DBGrid1.SelectedRows.Delete 语 句。 但 如 果 想 获 得 选 中
的 所 有 记 录 的 其 他 信 息, 比 如, 在 单 独 的 一 个 窗 体 中 显 示
用 户 选 择 的 记 录 的 第 一 个 字 段 的 内 容( 如 所 有 选 择 的 姓 名)
如 何 处 理 呢 ? 这 就 要 使 用 书 签 功 能 了, 下 面 是 笔 者 编 写 的
一 个 程 序 中 的 过 程, 用 来 将 用 户 选 择 的 多 个 记 录 集 中 显 示
在 另 外 一 个 窗 体 中( 笔 者 使 用 的 是DELPHI4), 供 参 考 使 用。
procedure GetSelectedRecord
(DataSet : TDataSet; FieldName : String;
BookList : TBookList; Strings : TStrings);
file://这个过程中的参数分别为:数据表、字段名称、
书签、用来保存所选字段内容的
file://字符串(用于将内容传递到另
一个单独窗体中的TLIST控件中)
var
I: Integer;
bm : TBookMark;
begin
Strings.Clear;
with Dataset do begin
DisableControls;
bm := GetBookMark;
try
file://每个选择的记录都有一个书签标志,
这就为处理它们提供了条件
for I := 0 to BookList.Count - 1 do begin
Book := BookList[I];
Strings.Add(DataSet.FindField(fieldname).AsString);
end;
finally
GotoBookMark(bm);
FreeBookMark(bm);
EnableControls;
end;
end;
end;调用举例:
GetSelectedRecord(Table1, 'NAME', DBGrid1.SelectedRows,
Form2.ListBox1.Items
鄙人从干过这样的事,做起来要控制的细微点