- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Delphi程序的设计及实验指导第3章 面向对象程序的设计
3.2 对象和类的概念 3.2.5 命名空间 在编写程序时,为了给变量类型函数一个合理的名字,使其既好记又好用,就要用到命名空间,Delphi 8 for .NET的一个重要特性,就是加入了对命名空间的支持。 在Delphi 8 for .NET中,一个工程文件(如程序、库或者包)隐含了它本身的命名空间,称为工程默认的命名空间。一个单元文件可能隶属于该工程的命名空间,或者明确地声明自己属于一个其它的命名空间。在任何一种情况下,单元文件在单元头声明其命名空间成员, 3.3 消息 消息是Windows的重要概念。通过消息Windows来处理用户输入,协调系统内的应用程序。理解和使用好Windows的消息,可使程序编写更为灵活,处理问题范围更广,处理手段也更专业。 3.3.1 消息机制 Delphi使用Windows消息,同时也使用自己定义的内部消息。Delphi的程序通过内在的消息机制处理来自Windows和自身的消息。 3.3 消息 1.什么是消息 在Windows中,消息是被定义成如下形式的变体记录: TMessage=record msg:Word: case Integer Of 0:( wparam:Word; lparam:Longint; result:Longint); 3.3 消息 1:( wparamLo:Byte; wparamHi:Byte; lparamLo:Word; lparamHi:Word; resultLo:Word; resultHi:Word); end; 3.3 消息 最初,Windows程序员必须详细了解每个参数的意义。近来微软公司对消息的参数做了命名,使得每条消息的参数更易理解。如键盘被按下的消息: type TWMKeyDown=record msg:Cardinal; charcode:Word; keydata:Longint; result:Longint; end; 由此可见,虽然为每个参数都进行了具体的命名,但它的结构仍是记录,占用12个字节。 Delphi的单元Messages定义了所有的Windows消息和Delphi消息。 3.3 消息 2.消息处理方法 建立窗体,加入一个组件时,便注册了一个接收消息的过程MainWndProc,这个过程是每个组件和窗体所固有的。Delphi内部使用这个过程接收来自各方面的消息。 MainWndProc只是接收消息,并不直接处理消息。在此过程内,MainWndProc调用过程WndProc(虚拟方法)来处理消息,并在周围提供了异常保护。如果有异常发生,将调用Application.HandleException方法去处理异常 WndProc是一个虚拟方法,这意味着可以覆盖它,提供自定义的消息处理过程。在此过程中可以截获消息,处理它或者丢弃它。对于自己不处理的消息,最好利用继承让父类去处理。 3.3 消息 父类的WndProc如果被覆盖,消息同样要被筛选一次。不管父类WndProc是否被覆盖,均在继承中调用祖先类的WndProc,这样一直追溯到了TControl类的WndProc。在 TControl.WndProc中,它调用最终祖先TObject的Dispatch派发消息。假如MainWndProc收到一条消息,沿着继承的路线调用WndProc,如果一路上的WndProc都未处理该消息,则被调用到TObject.Dispatch去寻找一个过程来处理这条消息。 TObject.Dispatch派发消息时也是按照继承的链逆流而上。首先查找本类中用Message定义的消息处理方法,如果没有找到,就再查找本类的DefaultHandler(虚拟方法)过程是否被覆盖。如果被覆盖,便调用它来处理;如果没有被覆盖,便继续查找父类。首先从message定义方法查起,然后再看看DefaultHandler是否被覆盖,这样一直找到了TObject的DefaultHandler。在TObject.DefaultHandler中,什么消息都不处理,只不过是走到了消息处理的头。 3.3 消息 3.Windows消息分类 Windows的消息分类如下: (1)窗口管理消息(Windows-management):当一个窗口状态改变时,由Windows发送消息给应用程序。 (2)初始化消息:当应用程序建立一个菜单或者对话框时发送此消息。 (3)输入消息:Windows发送的鼠标、键盘、滚动条、时钟等消息。 (4)系统消息:用户使用系统的控制菜单、滚动条、边界时,由Windows发给应用程序的消息。 (5
您可能关注的文档
最近下载
- 小学体育_队列队形教学设计学情分析教材分析课后反思.doc
- 中建项目商务策划汇报模板.pptx
- 公路中小跨径钢-混组合梁桥标准图集(制订)》技术方案报告.docx
- “设计思维与方法”教案.ppt
- 大职赛生涯闯关参考答案.docx VIP
- 2022《美宜佳公司营运资金管理存在的问题及对策研究》开题报告文献综述(含提纲)3200字.docx VIP
- 长垣市人民医院西学中培训班《方剂学》考试.pdf VIP
- 苏教版一年级科学上册4.1《自然物与人造物》(课件).pptx
- 电子商务招聘简章模板.pdf
- 统编版小学语文二年级上册第六单元 先辈伟人 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx
文档评论(0)