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

在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;

在程序中使用自定义的鼠标-Delphi资料 怎样建立简单的任务栏应用程序-Delphi资料 增强DelphiTStatusBar控制 制作Delphi的竖排标签 自适应表单的实现-Delphi资料 COM/DCOM的区别与联系-Delphi资料 CoolBar上控件的排列顺序-Delphi资料 Delphi 4 WebBroker Delphi 中自做动态显示的控件 Delphi3的DBGrid中的下拉列表和查找字段编程方法 DELPHI常见问题 Delphi的竖排标签 DELPHI构件制作方法 DELPHI控件Tweblabel的编制 DELPHI中MEMO组件的光标定位 Delphi中RichEdit的奥妙 Delphi中TApplication类 Delphi中日期时间输入的简洁方法 delphi中怎么调用interbase数据库? Memo的Undo功能-Delphi资料 RECT在Delphi中的灵活使用 StringGrid制作只读列-Delphi资料 TADOQuery下主明细表其属性关系如何设置,如何保存主表和明细表?-Delphi资料 TBatchMove用法-Delphi资料 TMemo的真正插入字符-Delphi资料 TREEVIEW的使用-Delphi资料 TreeView在电信综合统计管理系统中的应用-Delphi资料 VB6.0动态加载ActiveX控件漫谈-Delphi资料 捕捉来自 Thread 的异常-Delphi资料 定制Speedbar-Delphi资料 动态产生构件并相应事件-Delphi资料 如何在VC中嵌入对Access表tableApp中纪录个数的统计(在线等)? 学习java到底有没有前途?? 关于ie6和ie5下使用javascript的问题??? 自定义函数返回值的问题 小问题:如何在VC中嵌入对Access表tableApp中纪录个数的统计(在线等)? 怎么没人理我啊?我好可怜!linux下线程池谁知道怎样实现,在哪里可以找到资料? 请教高手:如何把 Office Word 中的字(包括字体、字色、字类型等)复制到 java 中。急!在线... 挂双硬盘在CMOS中怎么设置? 沾边就给分,请问各位前辈,我想画一个框,并据一定的条件使它以两种颜色交替显示,退出时将其释放 不能用右键来另存图片 关于J2EE问题? 有没有这么一个函数:将一个double型变量按科学计数法的格式显示出来 升级的问题 难!请教关于随机分段计算并判断的问题。 请教:QT库怎么配?怎么看装没装上?里面都有什么? 请推荐一个国外的(英文)网站,类似与csdn的程序员网站!想提高英语水平 请问jsp程序在运行时出现的这个错误是什么原因引起的? ASP对字符串加密后,就认不到路径了,,, 如何在VSS中建立软件运行平台。 如何接收附件 学习java有什么好的资料,书,网站!! 一个简单问题,在线等待! 设计模式疑问,偶都快晕了~~~ 当前账户被禁用 歌词NO-18 爱上别人是快乐的事 吴俊霖 tomcat4中更新bean后需要重起,我受不了这种开发方式,以前3.2时就没有这个问题? 关于颜色的问题 有没有办法使对话框在一个指定的位置弹出来 当前时间的前一天怎么可以求算出来? 一天我把电脑上空余的空间合成一个盘(在98上运行),在98上很正常,但是我在xp里原来的e盘变成了i盘!!!郁闷!! 请问这样写对吗? function checkform() 上网小问题,全给分 请教:一个关于远程数据服务(RDS.DataSpace)的问题!急!急!急!问题解决即结帐。谢谢! 关于删除多个表的记录的问题? byte a; a = a + 1不对是可以理解的,但a++, 或者a += 1为什么是对的呢? 那位大哥告诉一下PL/SQL developer5 正式版的下载地址(全的),和注册码! 100分 SENTINEL SYSTEM DRIVER是什么东东啊? 有没有局域网控制每个客户打印多少的打印机软件? 在pb中如何运行pb自带的同步器,急急急急急急 在Linux下开发B/S模式系统,请问安装在Linux的图形界面客户端上的浏览器选择什么为最好? 我的记录中有一个日期字段,如何将这个字段的值设为空值? 看奥赛题目,谁能挑战? 救急!用JSP把RESULT中的数据按一定的格式保存到一个指定的.TXT中。(100分) 我想问个别的话题的问题? 先问大家忙得好!我想求购一套成熟的小型的CRM系统,谁能推荐吗? 本来以为没希望,今天珠海软件考试中心电话通知我去办高程水平证书,我还不知道自己的分数 请教各位一个删除文件夹的问题 如何给acrobat 制作插件?象金山词霸那样的。 请教一个sql搜索语句的写法,在线等待,急! 请问谁知道有关WIN32汇编的资料??? 如何在VC中嵌入对Access表tableApp中纪录个数的统计(在线等)? 仍有46名中国人留在叙利亚 个别由安默克尔指责政敌把希腊接纳进欧元区是根多米尼加流行登革热和霍乱88人死亡“表哥”杨达才案今日开庭 媒体与民众西方暂缓对叙开战步伐 联合国化武调查叙利亚称将坚决回应外部侵略中国-东盟庆祝战略伙伴关系建立十周年调查显示中国年轻人“拼爹”心态严重华为在捷克发布旗舰新手机Ascend中国东盟外长会给南海争端降温日本日语学校中国留学生锐减英报报道中国年轻人乐于借钱消费外报述评 中国新一轮反腐严厉程度“不卡斯特罗:干预叙利亚后果严重三星智能手表Galaxy Gear后牛津词典将收录四个“时髦”词 自拍照诺基亚Lumia 1520首张谍照曝数百人齐聚纽约时代广场示威 反对美国西班牙经济衰退放缓日本7月份失业率降至3.8%与媒体“赌气”厄总统欲公投取消纸媒温州与索泰能源再合作 共推公共机构光坦桑尼亚外长表示支持中国在南海问题上海信精准医疗产品亮相“国家十二五科技解局 | 亚太再平衡,奥巴马给亚洲挖俄罗斯上调石油出口税新华国际时评:马里恐袭凸显中国蓝盔重体育场馆赛后利用问题有望改观 “互联“我国腐蚀状况及控制战略研究”取得阶兄弟整理母亲遗物发现催款单 补交50青海省海东市将基本普及15年教育兄弟三人偷窃建材被查 暴力抗法打伤民山西破获特大系列电信诈骗团伙案 受害潍坊大剧院第三届“打开艺术之门”国防部谈中国维和人员遇袭:深感震惊并四川南充现6个东汉陶俑墓 3件陶俑距广东新发地方政府债631.9亿 近六中金所回应期指异动 套保触发技术性卖昆明一条路上两家收停车费 有人收费无今年前五月江苏无锡中韩自贸区签证快速江西丰城一镇党委书记办公室内突然死亡盛松成:大部分P2P平台偏离信息中介
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘