delphi XE7 中的消息
在delphi XE7的程序开发中,消息机制保证进程间的通信。
在程序中,消息来自:
1)系统: 通知你的程序用户输入,涂画以及其他的系统范围的事件;
2)你的程序:不同的程序部分之间的通信信息。
什么时候使用消息?
当你写程序的时候,通常是使用事件而不是消息,控件触发事件让你来处理而其内部则是通过消息机制处理的(对你是透明的),从而实现和其他控件之间的通信以及处理系统信息。
不管咋样,有时你确实需要使用消息。
- 你的程序必须响应一个系统或者框架没有定义的事件(或者没有暴露出来的事件)
- 你创建了一个控件,需要和其它的程序部分通信
- 创建一个多线程程序,不同的线程之间通信需要使用到消息
如何选择消息解决方案?
当你使用RAD Studio开发项目的时候,你可以有两种消息处理机制来使用,这需要依赖你的程序是哪种框架:
- FireMonkey程序,需要使用跨平台的消息处理机制,使用的是RTL;
- VCL程序,依赖的是Windows API的消息处理机制。
当你自己写一个控件的时候,你可能需要根据你使用的平台来决定消息机制,是使用FMX还是VCL。不管咋样,VCL是使用Windows的消息机制是正确的,就像已经存在的VCL控件发送和接收消息都是通过Windows的API,并且VCL框架并不把Windows API的消息翻译装换成FMX的跨平台机制。
结论:
- delphi XE7支持跨平台的消息处理机制RTL;
- 在开发原生的VCL程序的时候,要使用Windows API消息。