摘要:
怎样编写自己的vcl控件
用过delphi的朋友们,大概对delphi的最喜欢delphi的不是他的强类型的pascal语法,而是强大的vcl控件,本人就是一位vcl控件的爱好者。
vcl控件的开源,给我们带来了享之不尽的好处。不像以前的ole控件以及activex,你完全可以重写delphhi标准控件,而且网上这方面的资源很多。
关于如何编写vcl控件,和多delphi的书籍里都......
摘要:
format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用:
首先看它的声明:function format(const format: string; const args: array of const): string; overload;事实上format方法有两个种形式,另外一种是三个参数的,主要区别在于它是线程安全的,......
关于VCL的编写 (二) 简单介绍一下VCL消息传递
【程序编程相关:
一个简单控件的编写--系统托盘】
简单介绍一下vcl消息传递 【推荐阅读:
MediaPlayer9 ActiveX】
下面,我就vcl的内部消息做一个简单介绍. 【扩展信息:
源码交流网,提供50套商业源码免费下载】
vcl除了封装了windows消息外,还有自己自定义的一些消息.windows的消息以wm_ 开头,可以参考delphi help里带的windows sdk 或msdn, 在messages.pas文件中也可以看得到. vcl的一些内部消息,一般是以cm_ cn_ cb_ 等开头的,在controls.pas文件中也可以看得到,具体的使用可以查看delphi方面的资料.
delphi 中每一个vcl构件都有一内在的消息处理机制,基本原理就是构件类接收到某些消息并把它们发送给适当的处理方法, 如果没有特定的处理方 法,则调用缺省的消息处理句柄.处理消息的几个方法有:
mainwndproc 是定义在twincontrol 类中的一个静态方法, 不能被重载(override). 它不直接处理消息, 而是交由wndproc 方法处理, 并为wndproc 方法提供一个异常处理.mainwndproc 方 法 声 明 如 下:
procedure mainwndproc(var message: tmessage);
wndproc 是在tcontrol 类中定义的一个虚拟方法, 由它调用dispatch 方法来进行消息的分配, wndproc 方 法 声 明 如 下:
procedure wndproc(var message: tmessage); virtual;
dispatch 方法是在tobject 根类中定义的, 其声明如下: ...
下一页 摘要:
delphi的接口陷阱
现在我所知的有两大陷阱:
陷阱一、接口的类型转换陷阱
a) 不能把一个对象引用强制转换成这个引用的类型没有声明实现的接口,即使这个对象实际实现了这个接口(呵呵,优点拗口)。
b) 当把一个对象变量赋给一个接口变量,在把这个接口变量赋还给对象变量时,这个对象变量的地址已经变了,也就是不再是原来的对象了,而是指向一个错误的地址。
例如:
i1 = interfac......