说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在DBGRID中实现COPY、PASTE功能-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
在DBGRID中实现COPY、PASTE功能-Delphi资料

工具条上的Cut、Copy和Paste加速按钮,对于使用Windows下编辑器的人来说,恐怕都是非常熟悉而且不可缺少的。Delphi(1.0和2.0版)中的有些控件,如:TDBEdit、TDBImage、TDBMemo、TEdit等,具有CutToClipboard、CopyToClipboard和PasteFromClipboard方法,在这些控件上,利用这几个方法,只要通过简单的编程,就可以实现上述加速按钮。但TDB Grid控件却不提供上述方法,无法直接实现这几种功能。而在单机的数据库应用程序中,TDBGrid却经常被用来进行数据(包括数字和文字)的输入,没有Copy和Paste功能,使用起来深感不便。笔者在编程过程中,利用中间控件进行“过渡”,间接地实现了这几种功能。

主要思路:既然TDBGrid控件无法直接实现Copy和Paste编辑功能,则可以将TDBGrid控件中需要进行这几种编辑的字段(Field)的内容,转移到具备这几种功能的控件(以TDBEdit为例)中去,编辑完毕后,再传回到TDBGrid中。

具体方法:在已设计好的包含有TDBGrid控件(设名为DBGrid1)的窗体中,增加一个TDBEdit(设名为DBEdit1)控件,其DataSources属性设为与DBGrid1的DataSources属性相同,对DBGrid1控件的OnColEnter事件编程,使DBEdit1的DataField属性值等于DBGrid1控件的被选择字段的字段名。再在窗体中增加两个快速按钮:Copy和Paste,图形可选Delphi子目录下ImagesιButtons子目录里的Copy.bmp和Paste.bmp。对Copy快速按钮的OnClick事件编程:

DBEdit1.CopyToClipboard;

对Paste快速按钮的OnClick事件编程:

DBEdit1.PasteFromClipboard;

DBGrid1.SelectedField.AsString:=DBEdit1.Text;

此时,如果DBGrid1中的某一单元Cell数字需要粘贴另一单元Cell2的部分或全部内容,用鼠标单击选择Cell2,此时DBEdit1所显示的内容与Cell2的内容相同。在DBEdit1中用鼠标拖曳选择部分或全部内容,单击Copy快速按钮;再用鼠标单击选择Cell,此时DBEdit1所显示的内容与Cell相同,在DBEdit中欲粘贴刚才所选内容的位置插入光标,单击Paste快速按钮,则刚才所选内容插入到光标位置,Cell的内容也随之改变成插入后的内容,由此完成了一次Copy—Paste操作。

用这种方法实现Copy—Paste操作,比正常的操作多了一次鼠标的键击、两次鼠标的移动。在重复输入的内容不多,且操作者键盘输入很快很熟练的情况下,这种实现Copy—Paste的方法,意义似乎不大。但如果应用程序的使用者是那些并没有掌握某种快速文字输入技巧、很有可能还在使用拼音输入法的人,如果使用者对正常的Copy—Paste方法本来就不熟练(则感觉不到这种方法的不合常规),且又非常地善于在一长串的同音字里翻来翻去地寻找的话,这还是一种不错的方法。如果哪位读者有能在TDBGrid中实现常规Copy—Paste操作的方法,请不吝赐教。

以下是有关的程序代码:

procedureTUnitDetail.DBGrid1ColEnter(Sender:TObject);

begin

caseDBGrid1.SelectedIndexof

0:DBEdit1.DataField:=′UnitNum′;

1:DBEdit1.DataField:=′UnitName′;

2:DBEdit1.DataField:=′Header′;

3:DBEdit1.DataField:=′Address′;

4:DBEdit1.DataField:=′Tel′;

end;

end;

procedureTUnitDetail.SBCopyClick(Sender:TObject);

begin

DBEdit1.CopyToClipboard;

end;

procedureTUnitDetail.SBPasteClick(Sender:TObject);

begin

DBEdit1.PasteFromClipboard;

DBGrid1.SelectedField.AsString:=DBEdit1.text;

end;

基于Apache Samza,揭秘LinkedIn架构背后的技术 Aeron:每秒可以传递数百万消息的低延时开源消息系统 英特尔物联网马拉松:用创造力改变生活 年末总结:2014年全球手游市场发展的六大趋势 Saber——模块化、组合式的移动前端框架 什么仇什么怨?还原日本反美颜应用Primo真面目 横跨2D与3D!专属C#开发者的超强游戏引擎Paradox 首份“2014年移动外语学习行业报告”等你下载 《近匠》Ayla联合创始人张南雄:物联网发展的三个阶段 神器 VisuAlgo:通过动画学习算法和数据结构 【工具推荐】QWrap——开源的前端JavaScript框架 老外看中国:移动应用UI设计的十大精髓 HTML5正名记:两家机构的博弈与一种标准的诞生 电池技术为何停滞不前?革新技术尚未出现 如何设计优雅的移动游戏? 前方高能!盘点2014年最颠覆三观的智能硬件 俄罗斯当局封杀GitHub,理由是教唆自杀 裁员110人、关闭工作室,Rovio重组求出路! 全Swift开发、代码开源!有钳的Firefox for iOS 详解开源游戏开发框架HaxePunk的主要特性 《程序员》杂志休刊通知 2014 TOP50最具价值CTO获奖名单揭晓! TIOBE 2014年12月编程语言排行榜:R和Swift成为年度语言候选者 免费增值应用正在“杀死”游戏开发者? 直接Mark!开源的DevOps开发工具箱 Apache Mesos联合创始人Benjamin Hindman:谈分布式应用现状 直觉不靠谱!使用移动应用分析的七个巧妙方法 屏蔽、挖角与丑闻,Uber的“创收神器”泡沫 蚁视科技发布会:三大产品与四大概念技术 盘点VS2015 预览版的5个新特性 低能的“智能” 请您对您的言行负责,遵守中华人民共和国有关法律、法规,尊重网上道德 请教一下杭州的PB程序员工资行情 反解密,有谁能那么牛?100分相送!!!!!!!!! 没问题,想倒分怎么办? 正是风雨飘摇日 =============怎么固定一个ActiveX控件的大小为资源里一个对话框的大小?========= 哲学家就餐问题,为了防止死锁,通常用几个信号量就可以解决? 这几天心里赌的慌,女友怎么能够这样! api中怎样初始时就最大化 小问题,在线等....好了就结分 怎么样检查这些端口是做什么的? 我读取数据集的时候,为什么会产生越界的异常? 如何通过超链接传值到下一页 谢谢 如何把当前时间组合成一个字符串? 请教大家一个问题: 请教大家一个问题: 本人给出配置表,请问路由器配置好之后,客户机网上邻居--》本地连接该怎么设置? 提问:页面如何顶边??? 难道嗳!!! 如何在几个窗体之间进行数据传递 请问:为什么编译无错,但生成。EXE文件时却有错,我是在卸载中文VC后安装英文版的 高手们,有一事不明! 郁闷~~ 调用VCDLL的参数传递问题 各位好心的大哥帮帮我,救救我~~~~~~我在线等待~~~~~~~~~ 六七十年代发生的几件很牛B的事情【转载】 求一存储过程写法 select ....union windows xp上oracle 816的数据库服务进程不能启动 image字段的处理? 今天我开始上班了 数据判断加分 关于注册用户问题 请教关于时间类型的问题 如何获取一个字符串中中文字符的个数?100分 如何用api获取cpu的processorId? 如何获取一个字符串中中文字符的个数?100分 神啊,救救我吧! 能把bcb6的程序转换成bcb5的吗? 如何获取服务器时间? 万分紧急,请大哥们帮小弟!!!!!!!!我在线等待高手相救 请教关于连接数据库的问题 如何把当前时间组合成一个字符串? 如何使SOAP客户端的web引用的url变成程序中设置(就是不写死了),又不需要重新编译客户端程序的! 我在运行某些程序的时候,为什么会出现office2000的安装进程,还要叫我放入off2000的安装盘??? 请问Oracle触发器里能执行Grant语句吗?? 关于DBGRID字段显示问题 连接时出现这样的提示,可能的问题在那里? 碰到一个几乎让我晕倒的问题!! 紧急提问:我的小型机死机了,怎么样关闭安全的关闭数据库,在重新启动小型机?在线... access有没有光盘路径的设置? 如图,在三角形ABC中,BC=9,AC=12,AB=15,角ABC的平分线BD交AC于D,DE垂直于DB交AB于E设圆O交BC于点F,连接EF,求AE的长和EF的长 我们的作业题(关于二次函数的).....1.关于二次函数y=(x+2)2-3的最大(小)值,叙述正确的是( )(A)当x=2时,有最大值-3 (B)当x=-2时,有最大值-3 (C)当x=2时,有最小值-3 (D 1、即有忘记往事,重新开始,又有与人为善的成语和词语,请举例!2、请写出与茶马古道的近义词 RTQH-60 SF6气体回收净化充放装置可以选配进口真空泵吗? RTQH-60 SF6气体回收净化充放装置的SF6储罐可以选择200公斤吗? 表示人体部位的词语常用来比喻有关的事物或道理 例:眉目 头绪 有了眉目急 RTQH-60 SF6气体回收净化充放装置基本工作原理? 人体的部位常常用来比喻相关的的事物或道理.耳目:——— 眉目————、 眉睫————尤其是眉睫,必须回答! RTQH-60 SF6气体回收净化充放装置可以配进口真空泵吗? 茱庾是什么意思 庾澄这个词是什么意思看见有网友名字叫这个.这词是啥意思 研究发现:SARS类病毒或由蝙蝠直接印尼强烈抗议美国监听 要求美国政府作英国脱离欧盟将导致苏格兰独立纽约买烟最低年龄提高到21岁洪航勇任杭州市人大常委会代理主任(图美辱华主持人回应华人起诉:他们愿浪费国际刑事法院推迟审理肯尼亚总统案美国航班飞行中将允许使用部分电子设备10月份国际大事回顾:美联邦政府关门奥巴马喊话投资者“选择美国”摄像师探寻日本平凡之美湖南公安文联完成换届选举湖南现代农业设定发展目标全球最大家具家居连锁加快成线联网 更好惠及出行省咨询业协会换届我省实施国企负责人各地抓紧修复水毁工程人大代表要更好地为民代言“让老百姓买得放心、三十年“冲”出一片新天地冬日云海漫衡山
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘