inherited; 表示重载基类同名的方法 Params.Style:=Params.Style or ES_RIGHT; 表示给TRightMemo加上ES_RIGHT的样式,也就是文字右对齐。 EM_LINEINDEX 设置当前行的消息 EM_SETSEL 设置当前选择区域的消息
我对重载还是模糊不清, procedure TRightMemo.CreateParams(var Params: TCreateParams); begin inherited; Params.Style:=Params.Style or ES_RIGHT; end;这里重载就是重新载入(执行)createparams方法吗?如果是,那么params.styel=param.style or ES_RIGHT还没有执行就重载它,这个params.styel=param.style or ES_RIGHT设置样式的语句在第一次运行失去存在价值了吗? 请大峡们.指教
订正:ES_RIGHT只是自己或别人定义的枚举类型的成员。
它將繼承它的基類此屬性,這里只不過給它的狀態增加一個顯示方式
表示重载基类同名的方法
Params.Style:=Params.Style or ES_RIGHT;
表示给TRightMemo加上ES_RIGHT的样式,也就是文字右对齐。
EM_LINEINDEX
设置当前行的消息
EM_SETSEL
设置当前选择区域的消息
procedure TRightMemo.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style:=Params.Style or ES_RIGHT;
end;这里重载就是重新载入(执行)createparams方法吗?如果是,那么params.styel=param.style or ES_RIGHT还没有执行就重载它,这个params.styel=param.style or ES_RIGHT设置样式的语句在第一次运行失去存在价值了吗?
请大峡们.指教
因为Params为变量参数,而先调用inherited让祖先做一些先期的工作,然后再设置你
自己的Params,然后这个Params会传到CreateWnd
重载基本上是算在原来的函数正常运行的情况下,再增加自己的内容。比如inherited执行后,被重载的函数TRightMemo.CreateParams会按照原来的代码执行一遍,然后再会执行下面的一句:
Params.Style:=Params.Style or ES_RIGHT;
明白吗?
你不能更改原来Delphi里已经定义好的TRightMemo.CreateParams函数。但是你可以重载它----就是重新定义一次这个函数,然后执行inherited来将Delphi里定义好的这部分函数的内容运行一次,接着就加上自己想多执行的语句。
ok?