分享
 
 
 

在DBGrid中实现Copy、Paste功能

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

Copy和Paste加速按钮,对于使用Windows下编辑器的人来说,恐怕都是非常熟悉而且不可缺少的。Delphi中的有些控件,如:TDBEdit、TDBImage、TDBMemo、TEdit等,具有CutToClipboard、CopyToClipboard和PasteFromClipboard方法,在这些控件上,利用这几个方法,只要通过简单的编程,就可以实现上述加速按钮。但TDBGrid控件却不提供上述方法,无法直接实现这几种功能。而在单机的数据库应用程序中,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操作的方法,请不吝赐教。

以下是有关的程序代码:

procedure TUnitDetail.DBGrid1ColEnter(Sender:TObject);

begin

case DBGrid1.SelectedIndex of

0:DBEdit1.DataField:=Unit?Num;

1:DBEdit1.DataField:=UnitName;

2:DBEdit1.DataField:=Header;

3:DBEdit1.DataField:=Address;

4:DBEdit1.DataField:=Tel;

end;

end;

procedure TUnitDetail.SBCopyClick(Sender:TObject);

begin

DBEdit1.CopyToClipboard;

end;

procedureTUnitDetail.SBPasteClick(Sender:TObject);

begin

DBEdit1.PasteFromClipboard;

DBGrid1.SelectedField.AsString:=DBEdit1.text;

end;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有