uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls;type
    TMyClass=class
        private
            ls:tstringlist;
        protected        public
          constructor Create;
          destructor Destory;
          function test():integer;
    end;
implementation{ TMyClass }constructor TMyClass.Create;
begin
  ls:=tstringlist.Create;
end;destructor TMyClass.Destory;
begin
  freeAndNil(ls);
end;function TMyClass.test;
begin
  result:=ls.Count;
end;end.
上面的代码的TMyClass类的Destory没有被编译,也不会执行.是什么原因呢?

解决方案 »

  1.   

    第一你的函数名字写错了,然后要重载destructor Destroy; override;
      

  2.   

    同意楼上,补充一下;destructor TMyClass.Destroy; override;
    begin
      freeAndNil(ls);  inherited;  ---->   调用基类
    end;
      

  3.   


    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls;type
      TMyClass=class
      private
      ls:tstringlist;
      protected  public
      constructor Create;
      destructor Destroy; override;
      function test():integer;
      end;
    implementation{ TMyClass }constructor TMyClass.Create;
    begin
      ls:=tstringlist.Create;
    end;destructor TMyClass.Destroy;
    begin
      freeAndNil(ls);
      inherited;
    end;function TMyClass.test;
    begin
      result:=ls.Count;
    end;end.