delphi XE7 中的消息

时间:2023-03-09 06:06:37
delphi XE7 中的消息

在delphi XE7的程序开发中,消息机制保证进程间的通信。

在程序中,消息来自:

1)系统: 通知你的程序用户输入,涂画以及其他的系统范围的事件;

2)你的程序:不同的程序部分之间的通信信息。

 

什么时候使用消息?

      当你写程序的时候,通常是使用事件而不是消息,控件触发事件让你来处理而其内部则是通过消息机制处理的(对你是透明的),从而实现和其他控件之间的通信以及处理系统信息。

      不管咋样,有时你确实需要使用消息。

  • 你的程序必须响应一个系统或者框架没有定义的事件(或者没有暴露出来的事件)
  • 你创建了一个控件,需要和其它的程序部分通信
  • 创建一个多线程程序,不同的线程之间通信需要使用到消息

如何选择消息解决方案?

      当你使用RAD Studio开发项目的时候,你可以有两种消息处理机制来使用,这需要依赖你的程序是哪种框架:

  • FireMonkey程序,需要使用跨平台的消息处理机制,使用的是RTL;
  • VCL程序,依赖的是Windows API的消息处理机制。

     当你自己写一个控件的时候,你可能需要根据你使用的平台来决定消息机制,是使用FMX还是VCL。不管咋样,VCL是使用Windows的消息机制是正确的,就像已经存在的VCL控件发送和接收消息都是通过Windows的API,并且VCL框架并不把Windows API的消息翻译装换成FMX的跨平台机制。

 

 

结论:

  1. delphi XE7支持跨平台的消息处理机制RTL;
  2. 在开发原生的VCL程序的时候,要使用Windows API消息。