在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消息。

delphi XE7 中的消息的更多相关文章

  1. 关于delphi XE7中的动态数组和并行编程(第一部分)

    本文引自:http://www.danieleteti.it/category/embarcadero/delphi-xe7-embarcadero/ 并行编程库是delphi XE7中引进的最受期待 ...

  2. TMsgThread, TCommThread -- 在delphi线程中实现消息循环

    http://delphi.cjcsoft.net//viewthread.php?tid=635 在delphi线程中实现消息循环 在delphi线程中实现消息循环 Delphi的TThread类使 ...

  3. Delphi XE7中新并行库

    Delphi XE7中添加了新的并行库,和.NET的Task和Parellel相似度99%. 详细内容能够看以下的文章: http://www.delphifeeds.com/go/s/119574 ...

  4. TMsgThread, TCommThread -- 在delphi线程中实现消息循环(105篇博客,好多研究消息的文章)

    在delphi线程中实现消息循环 在delphi线程中实现消息循环 Delphi的TThread类使用很方便,但是有时候我们需要在线程类中使用消息循环,delphi没有提供.   花了两天的事件研究了 ...

  5. Delphi XE7中使用JSON

    Delphi XE7有一个对JSON处理的单元,在你需要使用JSON的单元里面引入"System.json",随后你就可以用Delphi自己的json处理类了.我写的小例子只是对包 ...

  6. Delphi XE7中开发安卓程序一些有用的帮助资源

    说明:要想看到下面资源,打开帮助后,在搜索里面输入URL最后一部分,如果最后带“.html”,则把它删除,随后搜索一下,就看到了. 例如:想看下面的FireMonkey类关系图,只在搜索里面输入&qu ...

  7. Delphi XE7中各种字符串与字符类型的内存结构

    1. ShortString 类型 定义:type ShortString = string[255]; 内存结构与大小:ShortString 是每个字符为单字节的字符串.ShortString 的 ...

  8. TCommThread -- 在delphi线程中实现消息循环

    http://www.techques.com/question/1-4073197/How-do-I-send-and-handle-message-between-TService-parent- ...

  9. Delphi中的消息截获(六种方法:Hook,SubClass,Override WndProc,Message Handler,RTTI,Form1.WindowProc:=@myfun)good

    Windows是一个基于消息驱动的系统,因此,在很多时候,我们需要截获一些消息然后自己进行处理.而VCL系统又有一些特定的消息.下面对我所了解的delphi环境中截获消息进行一些总结.      就个 ...

随机推荐

  1. HDU 4118 Holiday's Accommodation

    Holiday's Accommodation Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 200000/200000 K (Jav ...

  2. 【Robot Framework】robot framework 学习以及selenium、appnium、requests实践(三)

    看了上一章的内容,想必较为简单的case也都会编写了吧,但是是不是觉得,如果能够实现用例参数化,是不是会节省很多劳动力,这节就来学下RF中的user keywords,会让你发现写用例原来可以这么简单 ...

  3. linux 系统启动流程

    原著资料网址:http://wenku.baidu.com/view/414127fdf705cc1755270997.html (版权归原作者所有) Linux系统的启动分5个阶段,每个阶段都完成不 ...

  4. Effective Modern C++翻译(4)-条款3:了解decltype

    条款3 了解decltype decltype是一个有趣的东西,给它一个变量名或是一个表达式,decltype会告诉你这个变量名或是这个表达式的类型,通常,告诉你的结果和你预测的是一样的,但是偶尔的结 ...

  5. SQL基本语句(3) LOAD DATA INFILE

    使用LOAD语句批量录入数据 语法: LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name' [REPLACE | IGNOR ...

  6. 学习练习 java 验证码练习

    String str="1234567890qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM "; int b[]=new ...

  7. 开源项目:FFmpeg

    ffmpeg命令行使用 将JPG格式图片转成YUV420P格式: ffmpeg -i Z:\demo\pic.jpg -s 720x480 Z:\demo\pic.yuv 解码H265成YUV420 ...

  8. seafile修改

    ---恢复内容开始--- [root@seafile yunpan]# vim /yunpan/installed/seahub/seahub/templates/footer.html ---恢复内 ...

  9. AX 条码打印

    AX 条码打印集成在BarCode类及其之类barcode*. 由子类的defaultFont方法指定字体属性. eg, BarcodeCode39 指定条码字体"BC C39 3 to 1 ...

  10. 【Linux】基于Linux的buffer和cache学习

    缓存(cached)是把读取过的数据保存起来,重新读取时若命中(找到需要的数据)就不要去读硬盘了,若没有命中就读硬盘.其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把不再读 ...