比如: A <- B <- C, 有方法: Test();
在C++中,可以这样写: void Test() { A::Test(); }, 但不知delphi中应怎样?谢谢!

解决方案 »

  1.   

    你的意思是不是不调用父类方法中的代码,直接调用爷类方法中的代码?如果这样的话,DELPHI似乎是不行的。
      

  2.   

    例如可以在A中调用A_ORIGINAL,那么B覆盖A并追加代码,C覆盖B后,C可以不inherited,直接调用A_Original,这样就达到了你说的效果。又或者干脆在C里把A的代码拷一遍算了(假如比较稳定的话)。基本只能靠改变类的设计来实现这个效果。
      

  3.   

    上面的方法不好。我的基类是TForm,不好去copy代码。我只想在孙子类中跳过中间类的一些方法.
      

  4.   

    TFormBaseWindow = class(TForm)
    TFormEBWindow = class(TFormBaseWindow)
    TClientSIWindow = class(TClientEBWindow)
    其中TFormBaseWindow 重载过procedure CreateParams(var Params: TCreateParams); override;和其它一些方法,但到TClientSIWindow 想将CreateParams恢复为TForm的实现,但其它的方法要继承TClientEBWindow.因此才会有上面的要求。
      

  5.   

    在TFormEBWindow里增加一个叫InternalCreateParams的虚方法,在TFormBaseWindow的CreateParams里面调用;TClientSIWindow覆盖这个方法为空实现
      

  6.   

    和我现在的实现差不太多,我是在TFormBaseWindow加一个BaseCreateParams的虚方法,TClientSIWindow覆盖createparams再调用这个方法. 谢谢!结帖。