DELPHI 解决DBGrid SHIFT键多选问题
来源:互联网 发布:网络安全法 二十七 编辑:程序博客网 时间:2024/06/03 12:04
在实际项目中,偶然遇到需要按下SHIFT键,在DBGrid中进行多选的情况,测试了几种方法,最终确定了一个比较好的解决方法,总结如下:
procedure TTestFrame.TestDBGridMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin //实现 Shift+鼠标左键单击 多选 if Button = mbLeft then begin if not FblSelect then begin FBookMark := TDBGrid(Sender).DataSource.DataSet.GetBookMark; FOldNo := TDBGrid(Sender).DataSource.DataSet.RecNo; FblSelect := True; Exit; end else begin if ssShift in Shift then begin FCurrNo := TDBGrid(Sender).DataSource.DataSet.RecNo; TDBGrid(Sender).DataSource.DataSet.DisableControls; TDBGrid(Sender).DataSource.DataSet.GotoBookmark(FBookMark); TDBGrid(Sender).SelectedRows.CurrentRowSelected := True; if FCurrNo > FOldNo then begin while FCurrNo > TDBGrid(Sender).DataSource.DataSet.RecNo do begin TDBGrid(Sender).SelectedRows.CurrentRowSelected := True; TDBGrid(Sender).DataSource.DataSet.Next; end; end else begin while FCurrNo < TDBGrid(Sender).DataSource.DataSet.RecNo do begin TDBGrid(Sender).SelectedRows.CurrentRowSelected := True; TDBGrid(Sender).DataSource.DataSet.Prior; end; end; TDBGrid(Sender).DataSource.DataSet.EnableControls; TDBGrid(Sender).DataSource.DataSet.FreeBookmark(FBookMark); FblSelect := False; FCurrNo := 0; FOldNo := 0; TDBGrid(Sender).Invalidate; end else begin FBookMark := TDBGrid(Sender).DataSource.DataSet.GetBookMark; FOldNo := TDBGrid(Sender).DataSource.DataSet.RecNo; FblSelect := True; Exit; end; end; end;end;
- DELPHI 解决DBGrid SHIFT键多选问题
- Delphi下DBGrid拖放问题
- 解决delphi关于dbgrid和webbrowser的焦点冲突的问题
- Delphi关于DBGrid选中行自动变色的问题
- 彻底解决Delphi的DBGrid控件鼠标滚轮问题
- delphi DBgrid 使用大全
- dbgrid使用大全(delphi)
- Delphi DBGrid总结
- Delphi DBGrid总结
- Delphi DBGrid 导出csv
- Delphi中的DBGrid控件
- Delphi DBGrid总结
- Delphi DBGrid重新排序
- Delphi DBGrid使用大全
- Delphi中的DBGrid控件
- 他山之石 网上Delphi DBGrid总结
- 【delphi】DBGrid中插入图片
- Delphi中DBGrid 应用全书
- 黑马程序员:JAVA集合框架知识点一
- Using ArcGIS Server with a 64-bit processor
- linux驱动简单实例
- 可能不知道的Linux Shell
- js 数组Array用法
- DELPHI 解决DBGrid SHIFT键多选问题
- jQuery LigerUi 中的render使用
- 学习NodeJS第二天:漫谈NodeJS
- jquery获得下拉框的值
- 调试android源码
- PCB中的常见名词解析
- 图像拼接 SIFT资料合集
- android 启动 ZygoteInit.java分析
- ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceID