procedure Refresh(var Message: TMessageRecordType); message ID_REFRESH;...
end;
Message方法不必包含override指示字来覆盖一个继承的message方法。实际上,在覆盖方法时也不必指定相同的方法名称和参数类型,而只要一个消息号码就决定了这个方法响应哪个消息和是否覆盖一个方法。
Implementing message methods(实现message方法)
The implementation of a message method can call the inherited message method, as in this example (for Windows):
实现一个message方法时,可以调用继承的message方法,就像下面的例子(适用于Windows):
- 107 -
Classes and objects
procedure TTextBox.WMChar(var Message: TWMChar);
begin
if Chr(Message.CharCode) = #13 then
ProcessEnter
else
inherited;
end;
在Linux或跨平台的情况下,你要以如下方式实现同样的目的:
procedure TTextBox.Refresh(var Message: TMessageRecordType);
begin

if Chr(Message.Code) = #13 then
...
else
inherited;
end;
命令inherited按类的层次结构向后寻找,它将调用和当前方法具有相同消息号码的第一个(message)方法,并把消息记录(参数)自动传给它。如果没有祖先类实现message方法来响应给定的消息号码,inherited调用TObject的DefaultHandler方法。
DefaultHandler没有做任何事,只是简单地返回而已。通过覆盖DefaultHandler,一个类可以实现自己对消息的响应。在Windows下,VCL控件(control)的DefaultHandler方法调用Windows的DefWindowProc(API)函数。
Message dispatching(消息分派)
消息处理函数很少直接调用,相反,消息是通过继承自TObject的Dispatch方法来分派给对象的。 procedure Dispatch(var Message);
传给Dispatch的参数Message必须是一个记录,并且它的第一个字段是Cardinal类型,用来存储消息号码。
Dispatch按类的层次结构向后搜索(从调用对象所属的类开始),它将调用和传给它的消息具有相同号码的message方法。若没有发现指定号码的message方法,Dispatch调用DefaultHandler。
Properties(属性)
Properties: Overview(概述)
属性就像一个字段,它定义了对象的一个特征。但字段仅仅是一个存储位置,它的内容可以被查看和修改;而属性通过读取或修改它的值与特定的行为关联起来。属性通过操纵一个对象的特征来提供对它的控制,它们还使特征能被计算。
声明属性时要指定名称和类型,并且至少包含一个访问限定符。属性声明的语法是
property propertyName[indexes]: type index integerConstant specifiers;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23665-79.html
索罗斯
但是你能得到钱还是10万*1