王朝网络
分享
 
 
 

C++ Builder 初学问与答(廿一)

王朝c/c++·作者佚名  2006-02-12
宽屏版  字体: |||超大  

作者:董维春 网名:ch_builder

(版权要求:请务必尊重知识产权,未经授权不要转载、摘录)

25)问:控件是怎样处理拖曳的呢?

答:当控件接受被拖曳的对象后会产生OnDragDrop事件,我们需要对这个事件进行响应,在对象观察器中双击控件的OnDragDrop事件域,生成它的处理模板。

加入这样一段代码,

第二条语句判断被拖拽的对象是不是自己,否则不接受拖拽

第三条语句计算被拖拽的是哪一个标签

第四条语句计算被拖拽到哪一个标签

第五条语句的作用是如果被拖拽到的标签是有效标签并且和被拖拽的标签不是同一个标签的时候移动标签。

26)问:控件是怎样结束拖曳的呢?

答:当你释放鼠标时,被拖曳的对象将会产生OnEndDrag事件,响应该事件的事件处理过程有一个Target参数,如果这个参数是nil表示这个对象未被接受,否则该参数就是接受这个对象的控件。在这个例子中被拖曳的对象就是标签组件

加入这样一段代码,它根据Target的值判断是否拖拽成功,并加以提示。

27)问:C++Builder提供了哪些方法来处理键盘方法?

答:C++Builder提供了三种键盘事件:OnKeyDown,OnKeyPress和OnKeyUp。这三种事件均可以获得用户的击键。

要注意的是,如果用户按下的是快捷键或者热键,那么你并不需要编写事件处理过程,例如你按下了Alt+F激活了File菜单,这个操作由系统完成,你不需要参与。

28)问:C++Builder提供的这三种键盘事件之间有什么区别?

答:按下任何键都会产生OnKeyDown和OnKeyUp事件,而OnKeyPress事件是由单个的字符键产生的。也就是说一些没有对应ASCII字符的键,例如Ctrl, Shift, Alt, F1等功能键不会产生OnKeyPress事件。

OnKeyDown和OnKeyUp事件的事件处理过程中包含了最近一次击键发生时,控制键Alt,Shift或者Ctrl是否按下的信息,而OnKeyPress事件只返回键的ASCII字符。

假设用户按下了Shift+P键,那么这三种键盘事件产生的顺序如下所示:

(1)按下Shift键时将产生OnKeyDown事件。

(2)保持Shift键再按下P时将产生OnKeyDown事件。

(3)由于按下了P键,所以产生了OnKeyPress事件。

(4)释放Shift键和P键,将产生OnKeyUp事件。

OnKeyDown和OnKeyUp事件的事件处理过程有三个参数,除了我们大家熟悉的参数Sender外,还有一个变量参数Key和控制键参数Shift。变量参数Key是一个字符类型的变量,它保存着用户按下的字符键。例如,要判断用户是否按下了字符键H,可以这样编写代码:

if (Key==’P’){…}

注意,这里如果是判断一个字母,那么需要小心字母的大小写。

要判断是否按下了控制键,可以用方法Contains

来判断用户是否按下了Shift键。

与前面两个事件相比,OnKeyPress事件的事件处理过程没有控制参数Shift,只有当你按下了单个字符键(例如字母键、数字键、空格键等)时,这个事件才会产生,变量参数Key中才会包含这个字符。

29)问:学习事件及事件响应应该注意什么?

答:在学习事件时要抓住两个关键点:一是事件产生的条件,二是事件处理过程所使用的参数。前者使你能够正确地判断该事件是否能够产生,后者使你能够正确地处理事件。

另外,还要理解多个同类事件的细微区别,就像三种键盘事件在相似的外表下,有着不同产生条件。

(未完待续)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝网络 版权所有