- 3
- 0
- 约4.66千字
- 约 28页
- 2017-05-09 发布于湖北
- 举报
键盘和鼠标编程资料
键盘和鼠标编程 事件可分为用户事件和系统事件两类。用户事件比较好理解,它用于响应应用程序的用户的动作。单击鼠标,就会调用一个OnMouseDown事件。移动鼠标,就会响应一个OnMouseMove事件。敲击键盘,会响应一个OnKeyDown事件。系统事件是由操作系统产生的。典型的系统事件是定时器的OnTimer事件。不管事件以何种方式调用,Delphi总是先看事件处理器是否添加了代码,如果有代码,代码将被执行,否则什么也不发生。 在事件驱动编程中,Delphi处理事件的顺序非常重要。用户仅仅只发出一个请求就可能触发许多事件,因此弄清楚事件发生的顺序非常重要。清楚了事件发生的顺序后可以避免出现一些竟想不到的结果。例如,单击按钮,首先响应的是OnEnter事件,然后响应OnMouseDown事件,最后触发的是Onclick事件。 键盘事件处理 键盘事件 1.OnKeyDown 当按下键盘上的任一个键,如字母键、数字键、功能键(F1~F12)、Ctrl键、Shift键或Alt键等,都将产生一个OnKeyDown事件。 下面的一段代码说明了OnKeyDown事件的用法:当打印的时候在窗体中按下Esc键后,取消打印作业。 procedureTForm1.FormKeyDown(Sender:TObject;varKey:Word;Shift:TShiftState); begin if(Key=VK_ESCAPE)andPrinter.Printingthen begin Printer.Abort;//中止打印 MessageDlg(打印中止。,mtInformation,[mbOK],0); End; End; 2.OnKeyPress 当按下键盘上的一个字符键,如字母键、数字键等会产生一个OnKeyPress事件,但是单独按下功能键(F1~F12)、Ctrl键、Shift键或Alt键等,不会产生OnKeyPress事件。 下面的一段代码说明了OnKeyPress事件的用法: procedureTForm1.FormKeyPress(Sender:TObject;varKey:Char); begin //显示按下的键 MessageDlg(你按下了+Key+键。,mtInformation,[mbOK],0); End; 3.OnKeyUp 当按下键盘上的任一个键后松开时,都会产生一个OnKeyUp事件。对于功能键(F1~F12)、Ctrl键、Shift键或Alt键等,也会产生一个OnKeyUp事件。 下面的一段代码说明了OnKeyDown事件和OnKeyUp事件的用法: var FormColor:TColor;//用来保存窗体原来的颜色 procedureTForm1.FormKeyDown(Sender:TObject;varKey:Word;Shift:TShiftState); begin //当键按下时先保存窗体的颜色然后再改变窗体的颜色 FormColor:=Form1.Color; Form1.Color:=clAqua; end; procedureTForm1.FormKeyUp(Sender:TObject;varKey:Word;Shift:TShiftState); begin //当键弹起时恢复窗体的颜色 Form1.Color:=FormColor; end; 程序运行后,在窗体中按下某个键然后松开,窗体的颜色会随之改变。 ? 模拟按下键盘上的某个键 有时在一些应用程序中,也需要模拟在键盘上按下某个键的过程,这可以通过向特定对象发送按键事件来实现。 例4-1 模拟按下键盘上的某个键 (1)创建一个新的工程,在窗体中添加一个Edit组件、一个Button组件和一个定时器组件(位于System标签页)。 (2)并添加Button组件的OnClick事件、Timer组件的OnTimer事件的处理过程如下: procedureTForm1.Button1Click(Sender:TObject); //模拟在Edit1组件中按下了字母a键 begin PostMessage(Edit1.Handle,WM_KEYDOWN,65,0); end; procedureTForm1.Timer1Timer(Sender:TObject); //模拟在窗体Form1中按下了Tab键 begin PostMessage(Form1.Handle,WM_KEYDOWN,VK_TAB,0); end; (3)运行程序,可以看到窗体的输入焦点在不断地变化,尽管并没有在键盘上按下Tab键。如果按下Button1按钮,则Edit1组件中的字符串会自动增加一个字母a。 检测功能键 在组件的O
您可能关注的文档
- 避免饮水误区怎样喝水即水润又不水肿重点.pptx
- 邓小平理论概论(福建水利电力职业技术学院)3分析.ppt
- 邓红-关联销售与服务技巧【中华讲师网】分析.ppt
- 邮政_3关键技能_柜员服务营销V1.资料.ppt
- 邵阳市医学生体质健康及认知水平的现状调查与分析要点.ppt
- 郑州绿博园常见植物讲述.docx
- 郦道元《三峡》(38页)教程.ppt
- 鄂教版五年级上册语文复习提纲(第三单元)重点.ppt
- 配色理论知识.o要点.ppt
- 酒店前台礼仪培训.1资料.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 2020四川既有及小区改造房屋建筑维修与加固工程说明及计算规则.pdf VIP
- 稀土永磁行业深度报告:供需向好看涨稀土,机器人催生新机遇.docx
- Inspur浪潮存储平台 AS5300G5&AS5500G5 产品白皮书 V2.0说明书用户手册.pdf
- 河北省高考物理一轮复习万有引力定律5.2 万有引力定律课件 .ppt VIP
- 牡丹切花品种筛选及采后技术研究.pdf VIP
- 复方口服避孕药临床应用专家共识(2025).pptx VIP
- 《心血管护理过程质控工具包(试用版)》2024.8.pdf VIP
- 中国徒步定向运动竞赛规则-讲解.pdf VIP
- 毕业设计(论文)-落叶清扫机设计.docx
- PICC进修汇报PPT课件.pptx VIP
原创力文档

文档评论(0)