Delphi 第06章_键鼠与文件概要1.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Delphi 第06章_键鼠与文件概要1

;6.1.1 关于键盘   在计算机发展过程中,一开始是就使用键盘作为输入方式,在DOS环境中,大多只有判断键盘是否单击,以及单击的是哪个键,在Windows之中,可以判断键盘单击的事件有三种如下图所示: ;  在这些事件中,OnKeyDown和OnKeyUp都会传入用户单击的Key值(word值),可以利用这些值,来判断用户按了哪些键,而这些值代表了Windows中的Virtual Key Code。而OnKeyPress所返回的是一个Char值,代表一个ASCII字符。   ASCII字符和Virtual Key Code是不相同的,因为Virtual Key Code中有代表ASCII的字符,但ASCII字符不包含全部的Virtual Key Code,因为Virtual Key Code中内含了很多功能键 ;6.1.2 键盘常用事件 1.OnKeyDown   当按下键盘上的任一个键时,就会触发此事件。如字母键、数字键、功能键(F1~F12)、Ctrl键、Shift键或Alt键等,都将产生一个OnKeyDown事件。 2.OnKeyPress   当用户单击ASCII字符的键盘时,就是说当按下键盘上的一个字符键,如字母键、数字键等会产生一个OnKeyPress事件,但是单独按下功能键(F1~F12)、Ctrl键、Shift键或Alt键等,不会产生OnKeyPress事件。;3.OnKeyUp 当按下键盘上的任一个键后松开时,都会产生一个OnKeyUp事件。对于功能键(F1~F12)、Ctrl键、Shift键或Alt键等,也会产生一个OnKeyUp事件。 4.检测功能键  在组件的OnKeyDown、OnKeyUp、OnMouseDown和OnMouseUp等事件的处理过程中,有一个TShiftState类型的变量Shift,TShiftState类型定义如下: Type TShiftState=setof(ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble);  根据Shift的值就可以判断当键盘上的键按下时Shift、Alt和Ctrl键的状态,或者按下鼠标左键、中键时的状态或者是否双击了按键。当然,如果有OnMouseDown事件发生了,而又不是按下左键和中键,则按下的一定是右键。 ;常用鼠标的事件有以下几种: 1.常用鼠标事件 (1)OnClick:当用户单击鼠标任何一个键时,就会触发此事件。 (2)OnMouseDown:当用户单击鼠标时,就会触发此事件。 (3)OnMouseMove:当用户单击鼠标在对象上移动时,就会触发此事件,但停止就不触发了。 (4)OnMouseUp:当鼠标的某个按键按下,然后松开后会产生一个此事件。; 在这些事件中,OnMouseDown和OnMouseUp都会触发事件,但???在用户单击时,可能会移动鼠标位置,使得两者被触发的对象不同的,但OnClick和OnMouseDown是会触发在同一个对象上的。 当用户在对象A按一下时,A会同时触发OnMouseDown OnClick OnMouseUp OnMouseMove 当用户在对象A单击但在对象B放开时,A会触发OnMouseDown OnMouseMove OnMouseUp,B会触发OnMouseMove 因此如果要触发OnClick事件,就必须要在一个对象按一下才行,否则只会有OnMouseDown、OnMouseMove、OnMouseUp这些事件。 ;具体过程如下: (1) 拖曳操作开始 大多数的组件具有DragMode属性,表示开始拖曳操作的方式。DragMode属性的缺省值为dmManual,也就是要在被拖动组件的OnMouseDown事件的处理过程中调用BeginDrag过程才开始拖曳操作。如果将DragMode属性设置为dmAutomation,则鼠标左键在被拖动组件上按下后就自动开始拖曳操作。;(2)接受拖曳操作 当拖动一个组件经过第二个组件的时候,第二个组件会产生一个OnDragOver事件。在该事件的处理过程中有一个布尔类型的参数,该参数的设置直接影响是否产生OnDragDrop事件。  一般情况下,在OnDragOver事件的处理过程中,根据参数Source判断拖曳操作的源。如果是可以接受的源,则将Accept参数设置为True;否则,将其设置为False。 (3)处理拖曳操作  在第二个组件OnDragDrop事件处理过程中,根据拖曳操作的源做一些相应的处理。;(4)拖曳操作结束   拖曳操作完成后释放鼠标左键,会在第一个组件中产生一个OnEndDrag事件,可以根据参

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档