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

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

响应式Web开发,必懂媒体查询(系统理论+实战教程) 实例剖析:如何用Foundation For Apps创建完美Web应用 【舌尖上的CTO】兄弟肉夹馍的开发运维一体化 开创未来的关键:是什么造就了硅谷?(下) 安全漏洞影响2.5万iOS应用?AFNetworking维护者发布回应 dos下如何控制串口的RTS,DTR,TXD,RXD為HIGH,LOW呢? 一个这样的问题,不知怎要问,详请请看内容 在水晶报表中怎样实现分栏打印? 如何把一篇Word 文档保存到数据库里? ERP 和 MRP II是什么意思? 是在外资企业做软件工程师,还是到台资企业做系统分析员 怎么来设置应用程序的图标? 请问那些公司做视频做的比较好 设计书中的 输入项,输出项 是什么?请高手们讲解一下。 碳酸如何与水反应 碳酸银 水反应要是碳酸银放入水中不是会水解吗?之后 H2CO3与水反应的化学方程式 许多动植物在繁殖方式上具有相似性,植物的花和动物的 17寸有多大? B大概多大比喻 CO3- 水解后呈酸性 为什么第一步:CO3- + 什么物质与水反应生成二氧化碳(无毒)物质可食用 简短比喻句:比如 把人们的脸比作红苹果.有那些简短 俄罗斯富人与穷人代名词:寡头、工薪族斯诺登在俄觅得网站工作 11月1日开以色列再次兴建犹太人定居点 被指破坏巴官员称以色列炮击加沙地带 一名武装欧洲或限美企处理数据 封杀数百亿美元红柿飘香“我只是做了儿媳该做的事”2015年度福建省县域经济评价结果揭国务院:改革和完善国有资产管理体制海丝国际艺术节永久落户泉州寒门食客异界之救世传说穿越之动漫娱乐小亨魂斗阁堕天使们的天堂英国领事馆旧址旅游昭关石塔旅游科技馆旅游文化公园旅游红树林旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘