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

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Delphi 程序设计教程(第3版)第6章 鼠标、键盘和文件编程清华大学出版社 杨长春 主编6.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事件发生了,而又不是按下左键和中键,则按下的一定是右键。 6.2 鼠标的编程常用鼠标的事件有以下几种: 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这些事件。2.拖放事件 (1)OnDragDrop:在拖曳事件开始时会触发此事件。(2)OnDragOver:当拖曳对象跨过一个组件时会触发此事件。(3)OnEndDrag:当拖曳事件结束后会产生触发此事件。具体过程如下:(1) 拖曳操作开始 大多数的组件具有DragMode属性,表示开始拖曳操作的方式。DragMode属性的缺省值为dmManual,也就是要在被拖动组件的OnMouseDown事件的处理过程中调用BeginDrag过程才开始拖曳操作。如果将DragMode属性设置为dmAutomation,则鼠标左键在被拖动组件上按下后就自动开始拖曳操作。(2)接受拖曳操作 当拖动一个组件经过第二个组件的时候,第二个组件会产生一个OnDragOver事件。在该事件的处理过程中有一个布尔类型的参数,该参数的设置直接影响是否产生OnDragDrop事件。 一般情况下,在OnDragOver事件的处理过程中,根据参数Source判断拖曳操作的源。如果是可以接受的源,则将Accept参数设置为True;否则,将其设置为False。(3)处理拖曳操

您可能关注的文档

文档评论(0)

此项为空 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档