CSDN中搜索关键字:“面向对象”或“消息处理”。

解决方案 »

  1.   

    ES_RIGHT只是自己或别人定义的枚举类型的变量。
      

  2.   


    订正:ES_RIGHT只是自己或别人定义的枚举类型的成员。
      

  3.   

    inherited=繼承
    它將繼承它的基類此屬性,這里只不過給它的狀態增加一個顯示方式
      

  4.   

    inherited;
    表示重载基类同名的方法
    Params.Style:=Params.Style or ES_RIGHT;
    表示给TRightMemo加上ES_RIGHT的样式,也就是文字右对齐。
    EM_LINEINDEX
    设置当前行的消息
    EM_SETSEL
    设置当前选择区域的消息
      

  5.   

    我对重载还是模糊不清,
    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设置样式的语句在第一次运行失去存在价值了吗?
    请大峡们.指教
      

  6.   

    TWinControl的CreateWnd会调用CreateParams,并根据Params参数来注册窗口类
    因为Params为变量参数,而先调用inherited让祖先做一些先期的工作,然后再设置你
    自己的Params,然后这个Params会传到CreateWnd
      

  7.   

    呵呵,不是你想得这样的
    重载基本上是算在原来的函数正常运行的情况下,再增加自己的内容。比如inherited执行后,被重载的函数TRightMemo.CreateParams会按照原来的代码执行一遍,然后再会执行下面的一句:
    Params.Style:=Params.Style or ES_RIGHT; 
    明白吗?
    你不能更改原来Delphi里已经定义好的TRightMemo.CreateParams函数。但是你可以重载它----就是重新定义一次这个函数,然后执行inherited来将Delphi里定义好的这部分函数的内容运行一次,接着就加上自己想多执行的语句。
    ok?
      

  8.   

    aaronzhang 谢谢,这下我更清楚拉,我知道了,可惜没有分啦,给完了,下次吧,呵呵