结构大概如下,可能是哪里出的问题呢?
Delphi 2010TModel = class(TRegion)
  procedure Compile;
  procedure WriteModel; virtual;
end;TXModel = class(TModel)
end;TXYModel = class(TXModel)
end;TAbcModel = class(TXYModel)
  procedure WriteModel; override;
end;var
  Abc: TAbcModel;
function CompileAll;
begin
  Abc.Compile;
end;

解决方案 »

  1.   

    父类的procedure WriteModel; virtual;
    应该写在protected或者public段中
    procedure TAbcModel.WriteModel; override;
    begin
      inherited; //这里要加这个声明end;
      

  2.   

    怎么能不起作用呢  override 你如果想继承先前的功能得 inherited WriteModel;  还有你并没有 override  Compile啊, 
      

  3.   

    我只是大概写了一下结构,理解就好。和inherited无关,因为只执行了父类的函数。
      

  4.   

    Compile是静态函数。也试过virtual,一样的。
      

  5.   

    function CompileAll;  //D里面函数有返回的? 这里是过程吧?
    begin
      Abc.Compile;
    end;ABC 是 TAbcModel  的, 没有看你实现:  compile?还有:inherited 这个