Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Delphi中有比默认TDBGrid更好的多选功能吗?

在Delphi中有比默认TDBGrid更好的多选功能吗?
EN

Stack Overflow用户
提问于 2009-06-01 00:45:44
回答 1查看 1.3K关注 0票数 1

短期内没有升级的打算,因为这个版本显然“做了我们需要的事情”。

在TDBGrid上设置dgRowSelect和dgMultiSelect选项后,该行为与标准的Windows UI不一致。

我认为我们以前从来没有需要过这个选项,否则我会注意到Delphi的TDBGrid上的默认实现是多么糟糕。我希望按住Ctrl键并单击单行(这可以正常工作;不是很好,但也可以),但也要按住Shift键并单击范围选择(这不起作用)。

我怀疑我可以捕获WM_LBUTTONDOWN消息并在子类中手动处理它,但是在这条道路上有什么陷阱在等着我吗?

我希望有人已经经历过这些动作,因为我无法想象人们会对提供的糟糕的默认努力感到高兴。

EN

回答 1

Stack Overflow用户

发布于 2009-06-01 09:22:42

可从Woll2Woll [http://www.woll2woll.com]获得的Infopower库包含一个扩展的数据网格,其中包含将提供所需行为的属性(msoAutoUnselect、msoShiftSelect)。

这些属性在Infopower的历史上很早就被引入了,所以即使是你能找到的最便宜的版本也应该足够了。在任何情况下,Infopower的成本都不到300美元。

我与Woll2Woll没有任何关联;我只是使用他们的产品。

-Al。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/934020

复制
相关文章
有比JSON更好的东西吗?
各种数据序列化格式进行比较。基本上,是回答以下问题:“能找到比JSON更好的东西吗?”。 这里找的是用于数据序列化的语言,而不是配置文件。
mariolu
2020/10/28
4.9K0
有比Pandas 更好的替代吗?对比Vaex, Dask, PySpark, Modin 和Julia
表格是存储数据的最典型方式,在Python环境中没有比Pandas更好的工具来操作数据表了。尽管Pandas具有广泛的能力,但它还是有局限性的。比如,如果数据集超过了内存的大小,就必须选择一种替代方法。但是,如果在内存合适的情况下放弃Pandas使用其他工具是否有意义呢?
deephub
2021/02/12
4.8K0
有比Pandas 更好的替代吗?对比Vaex, Dask, PySpark, Modin 和Julia
本周最新小程序,还有比这 10 个更好的吗? | 晓榜
从今天起,「知晓程序周榜」正式更名为「晓榜」。 这个全新的「晓榜」,将在未来给大家提供更多类型,且更有看头的小程序榜单。 本期,知晓程序(微信号 zxcx0101)给大家带来的是「晓榜」一周最新小程序。 我们从本周所有新上线的小程序中,挑选出了最好的 10 款。只要关注晓榜,你就不会错过任何一款新的优质小程序。 想上榜?现在就到小程序商店(minapp.com)发布你的小程序吧! 1. 式神猎手 阴阳师玩家必备,把查资料的时间省下来刷御魂。 手游阴阳师游戏数据库,支持快速查询式神与神秘线索。 2. 家谱
知晓君
2018/06/29
7030
居然有比 npm link 更好的调试?
在一个项目中,我们会用 HRM 热更新来让我们修改的代码在浏览器中快速看到效果,快速验证我们的代码是否正确。
coder_koala
2021/07/08
1.7K0
居然有比 npm link 更好的调试?
卧槽!居然有比Flask更好用更简单的框架
今天它的对手 FastApi 框架来啦!FastAPI是一种现代,高性能的Web框架:
龙哥
2020/09/27
4.2K0
卧槽!居然有比Flask更好用更简单的框架
还有比 Jupyter 更好用的工具?看看 Netflix 发布的这款
近日,Netflix宣布开源Polynote,Polynote是Netflix自家使用的多语言笔记本环境,Polynote为数据科学家和机器学习研究人员提供了一个笔记本环境,允许他们将基于JVM的ML平台(此类平台大多使用Scala构建)与Python生态系统中流行的机器学习和可视化库无缝集成。
Python数据科学
2019/11/12
2K0
Delphi中QuotedStr()
1.定义 给字符串两边加单引号并返回. 声明:function QuotedStr(const S: string): string; 用函数 QuotedStr把字符串S转换成为用引号括起来的字符串。单引号” ’ ” 将被插入到字符串s的最前和最后。
全栈程序员站长
2022/11/02
1K0
delphi record中的case
其实就是代表分了几种情况,都可以表示,也相当于c里面的union _SYSTEM_INFO = record case Integer of 0: ( dwOemId: DWORD); 1: ( wProcessorArchitecture: Word; wReserved: Word; dwPageSize: DWORD; lpMinimumApplicationAddress: Poi
战神伽罗
2019/07/24
1.1K0
在Flutter中设置更好的Logging的指南
今天,我们将研究可以极大减少应用程序调试时间的任务之一。一旦您习惯了在您的应用程序中以某种方式运行的日志,您将很快能够注意到为什么某些东西不起作用。您可以查看应用程序的流程,如果需要,还可以查看更多内容。
玖柒的小窝
2021/10/05
1.8K0
在Flutter中设置更好的Logging的指南
DELPHI中完成端口(IOCP)的简单
最近太忙,所以没有机会来写IOCP的后续文章。今天好不容易有了时间来写IOCP的粘包处理问题。
py3study
2020/01/06
1.2K0
小程序实现TreeView树多选功能
话不多说,先上效果图: https://player.bilibili.com/player.html?aid=292282209 实现思路 源数据结构 首先我们的数据结构大概是: [ {
android_薛之涛
2021/09/07
1.5K0
Delphi中实现程序的延时的方法
在Delphi中,通常可以用以下三种方法来实现程序的延时,即TTtimer控件,Sleep函数,GetTickCount函数。但是其精度是各不相同的。 一、三种方法的简单介绍 1)TTtimer控件 TTtimer控件的实质是调用Windows API定时函数SetTimer和KillTimer来实现的,并简化了对WM_TIMER 消息的处理过程。通过设置OnTimer事 件和Interval属性,我们可以很方便的产生一些简单的定时事件。 2)Sleep函数 Sleep函数用来使程序的执行延时给定的时间值。Sleep的调用形式为Sleep(milliseconds),暂停当前的进程milliseconds毫秒。Sleep的实现 方法其实也是调用Windows API的Sleep函数。例如: sleep(1000); //延迟1000毫秒 Sleep会引起程序停滞,如果你延迟的时间较长的话,你的程序将不能够响应延时期间的发生的其他消息,所以程序看起来好像暂时死机。 3)GetTickCount函数 在主程序中延时,为了达到延时和响应消息这两个目的,GetTickCount()构成的循环就是一种广为流传的方法。例如:
obaby
2023/02/28
1.2K0
vue实现表格组件(实现多选功能)
其中多选功能参考:https://jsfiddle.net/muchen/7r358jmu/2/
陨石坠灭
2018/10/19
3.4K0
layui 实现下拉多选功能 [xm-select]
背景 近期负责的管理后台,有下拉多选的业务需求 通过网上的经验搜索,发现 xm-select 是个非常不错的选择 并且,当前的后台使用的正是 layui 前端框架 所以,在此整理一下 对下拉多选功能 【xm-select 】 的使用步骤 欢迎指摘 … ▷ 使用步骤 参考使用文档,根据本人实际操作步骤,在此描述如下: ①. html 代码 此处摘取核心代码如下 (前端框架使用的是 【layui】) <div class="layui-input-inline"> <!-- 展示下拉多选
泥豆芽儿 MT
2022/01/05
7.1K0
layui 实现下拉多选功能 [xm-select]
Delphi语言_DELPHI
总结一下SQL语句中引号(‘)、quotedstr()、(”)、format()在SQL语句中的用法以 及SQL语句中日期格式的表示(#)、(”) 在Delphi中进行字符变量连接相加时单引号用(”’),又引号用(””)表示 首先定义变量 var AnInt:integer=123;//为了方便在此都给它们赋初值。虽然可能在引赋初值在某些情况下不对 AnIntStr:string=’456′; AStr:string=’abc’; AFieldName: string=’字符型编号’; ATableName: string=’YourTable’; ADate:Tdatetime=now; Adoquery1:tadoquery; 1,Delphi语句 adoquery1.sql.text:= ‘select 字符型编号 from YourTable where 字符型编号=’abc’ and 整型编号=123′; 等价于 adoquery1.sql.text:= ‘select ‘+AFieldName+’ from ‘+ATableName+’ where ‘+AFieldName +’=”’+AStr+”’ and 整型编号=’+AnIntStr; 也等价于 adoquery1.sql.text:= ‘select ‘+AFieldName+’ from ‘+ATableName+’ where ‘+AFieldName +’=’+QuotedStr(AStr)+’ and 整型编号=’+Inttostr(AnInt); 传到数据库服务器为: select 字符型编号 from YourTable where 字符型编号=’abc’ and 整型编号=123 2,Delphi语句中日期表示 对于access数据库: adoquery1.sql.text:= ‘select 字符型编号 from YourTable where 日期型字段=#2003-12-01#’; 等价于: adoquery1.sql.text:= ‘select 字符型编号 from YourTable where 日期型字段=#’+FormatDateTime(‘yyyy-MM-dd’,now)+’#’; 传到服务器为: select 字符型编号 from YourTable where 日期型字段=#2003-12-01# 对于MSSQL数据库: adoquery1.sql.text:= ‘select 字符型编号 from YourTable where 日期型字段=’2003-12-01”; 等价于: adoquery1.sql.text:= ‘select 字符型编号 from YourTable where 日期型字段=”’+FormatDateTime(‘yyyy-MM-dd’,now)+””; 也等价于: 等价于: adoquery1.sql.text:= ‘select 字符型编号 from YourTable where 日期型字段=’+QuotedStr(FormatDateTime(‘yyyy-MM-dd’,now)); 传到服务器为: select 字符型编号 from YourTable where 日期型字段=’2003-12-01′ 日期字段还可以这样表示 Delphi语句 adoquery1.sql.text:= ‘select 字符型编号 from YourTable where 日期型字段>=’+QuotedStr(FormatDateTime(‘yyyy-MM-dd’,now)) +’ and 日期型字段<=’+QuotedStr(FormatDateTime(‘yyyy-MM-dd’,now+1));//明天 等价于 adoquery1.sql.text:= ‘select 字符型编号 from YourTable where 日期型字段 between ‘+QuotedStr(FormatDateTime(‘yyyy-MM-dd’,now)) +’ and ‘+QuotedStr(FormatDateTime(‘yyyy-MM-dd’,now+1)); 如果用 adoquery1.sql.add(); 形式又如何操作?请用Insert语句示例 adoquery1.sql.add(‘ insert into ‘+AtableName); adoquery1.sql.add(‘ ( ‘+AFieldName+’)’); a
全栈程序员站长
2022/11/02
1.6K0
delphi7中idHTTP的使用
IdHTTP1.HandleRedirects := True;//允许头转向 IdHTTP1.ReadTimeout := 30000;//请求超时设置 IdHTTP1.HTTPOptions:=IdHTTP1.HTTPOptions+[hoKeepOrigProtocol]; IdHTTP1.ProtocolVersion:=pv1_1; IdHTTP1.Request.Connection := ‘keep-alive’; IdHTTP1.Request.CacheControl := ‘no-cache’; IdHTTP1.Request.AcceptLanguage:=’zh-cn’; IdHTTP1.Request.AcceptEncoding:=’gzip, deflate’; IdHTTP1.Request.ContentType := ‘text/xml;application/x-www-form-urlencoded; Charset=UTF-8’; postStream:=TStringStream.Create(ansitoUTF8(gv_mz_cf_xml));
全栈程序员站长
2022/09/14
1.8K0
WPF使ListBox支持手势多选功能
手势功能在手持平台应用较为丰富,PC上的应用还不是很多,不过还是有一些软件已应用这个功能如遨游浏览器等,应用得当还是相当可以丰富用户的互交体验的。
yoyofx
2018/09/05
8300
WPF使ListBox支持手势多选功能
vue实现表格组件(实现多选功能)
其中多选功能参考:https://jsfiddle.net/muchen/7r358jmu/2/
陨石坠灭
2020/01/21
1.2K0
Go是更好的编程语言吗?
第一次接触GO是5年前,14年4月份,也是在我司,全职钻研一周,彼时C++中毒太深,内心排斥其他编程语言,看其他语法总觉得有点怪,而且有“C/C++能做任何事,故无用其他语言之必要”的思想在作祟。
AI科技大本营
2019/05/13
2K0
Go是更好的编程语言吗?
点击加载更多

相似问题

在Delphi的TDBGrid中查找当前行

36

有比dir()更好的东西吗?

12

有比reCaptcha更好的东西吗?

15

有比%random%更好的东西吗?

30

有比回声更好的方法吗?

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文