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消息。
delphi XE7 中的消息的更多相关文章
- 关于delphi XE7中的动态数组和并行编程(第一部分)
本文引自:http://www.danieleteti.it/category/embarcadero/delphi-xe7-embarcadero/ 并行编程库是delphi XE7中引进的最受期待 ...
- TMsgThread, TCommThread -- 在delphi线程中实现消息循环
http://delphi.cjcsoft.net//viewthread.php?tid=635 在delphi线程中实现消息循环 在delphi线程中实现消息循环 Delphi的TThread类使 ...
- Delphi XE7中新并行库
Delphi XE7中添加了新的并行库,和.NET的Task和Parellel相似度99%. 详细内容能够看以下的文章: http://www.delphifeeds.com/go/s/119574 ...
- TMsgThread, TCommThread -- 在delphi线程中实现消息循环(105篇博客,好多研究消息的文章)
在delphi线程中实现消息循环 在delphi线程中实现消息循环 Delphi的TThread类使用很方便,但是有时候我们需要在线程类中使用消息循环,delphi没有提供. 花了两天的事件研究了 ...
- Delphi XE7中使用JSON
Delphi XE7有一个对JSON处理的单元,在你需要使用JSON的单元里面引入"System.json",随后你就可以用Delphi自己的json处理类了.我写的小例子只是对包 ...
- Delphi XE7中开发安卓程序一些有用的帮助资源
说明:要想看到下面资源,打开帮助后,在搜索里面输入URL最后一部分,如果最后带“.html”,则把它删除,随后搜索一下,就看到了. 例如:想看下面的FireMonkey类关系图,只在搜索里面输入&qu ...
- Delphi XE7中各种字符串与字符类型的内存结构
1. ShortString 类型 定义:type ShortString = string[255]; 内存结构与大小:ShortString 是每个字符为单字节的字符串.ShortString 的 ...
- TCommThread -- 在delphi线程中实现消息循环
http://www.techques.com/question/1-4073197/How-do-I-send-and-handle-message-between-TService-parent- ...
- Delphi中的消息截获(六种方法:Hook,SubClass,Override WndProc,Message Handler,RTTI,Form1.WindowProc:=@myfun)good
Windows是一个基于消息驱动的系统,因此,在很多时候,我们需要截获一些消息然后自己进行处理.而VCL系统又有一些特定的消息.下面对我所了解的delphi环境中截获消息进行一些总结. 就个 ...
随机推荐
- 使用spring的邮件发送功能
使用spring提供的MailSender和JavaMailSender类. 1.邮件对象类 package cn.luxh.app.mail; import java.util.List; impo ...
- Configure apt-get / git/ curl to use a proxy (Ubuntu)
http://technoblog.org/2009/07/configure-apt-get-to-use-a-proxy-ubuntu/ Open the following configurat ...
- Android popupwindow 弹出的位置问题
在Android开发中,需要用到PopupWindow这个类.在初始化完成,显示之前,都需要获得这个对象的width,height去计算popupWindow弹出的位置. 这个时候会发现取得的widt ...
- 安装VS2015可能出现的问题以及解决方法
1.语言包问题 在官网上下载的版本是英文版,这就需要自己再去官网上下载一个中文安装包,很快的.不过需要2G内存.官网链接如下所示 https://www.microsoft.com/zh-CN/dow ...
- Android打造带透明圆弧的ImageView
这几天因为项目需求,需要在ImageView上面叠加一层透明圆弧,并且在沿着圆弧的方向显示相应的文字,效果如下图所示: 拿到这个需求,首先想到的是自定义一个ImageView来实现此功能,即在onDr ...
- python实现批量ping IP,并将结果写入
最近工作需要,写了一个Python小脚本,分享给大家,因为公司的IP用的差不多了,然后离职人员的IP有没有及时删除,导致没多少IP用了,所以做了一个python脚本跑了跑,清出来一堆ping不通的IP ...
- 慕课网-安卓工程师初养成-4-11 Java循环跳转语句之 break
来源:http://www.imooc.com/code/1431 生活中,我们经常会因为某些原因中断既定的任务安排.如在参加 10000 米长跑时,才跑了 500 米就由于体力不支,需要退出比赛.在 ...
- python的文件操作方法
python中的文件对象:文件对象不仅可以用来访问普通的磁盘文件, 而且也可以访问任何其它类型抽象层面上的"文件". 一旦设置了合适的"钩子", 你就可以访问具 ...
- oracle中行转列、列转行函数
多行转字符串 这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_user select id||username str ...
- Iphone5S 体验(视频+截图)
Iphone5S眨眼从外观看和5区别不大,仔细一看后面,最大的变化还是闪光灯,内部使用了A7的处理器运算速度增强了不少.无论照相还是FaceTime摄像都非常清晰,就连常用的手电筒和动态天气预报都考虑 ...