type
  TDateForm = class(TForm)
    LabelDate: TLabel;
    BtnIncrease: TButton;
    BtnDecrease: TButton;
    BtnAdd10: TButton;
    BtnSubtract10: TButton;
    BtnLeap: TButton;
    BtnToday: TButton;
    procedure BtnIncreaseClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BtnDecreaseClick(Sender: TObject);
    procedure BtnAdd10Click(Sender: TObject);
    procedure BtnSubtract10Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure BtnLeapClick(Sender: TObject);
    procedure BtnTodayClick(Sender: TObject);
  private
    TheDay: TDate; //TDate 为另一UNITS中定义的类
  public
    { Public declarations }
  end;在FORM释放的时候是自动释放 还是得自己调用TheDay.Free啊? 为什么呢?

解决方案 »

  1.   

    CLASS类对象的析构,还是用Free好。因为只有用free才能做到既删除对象,又能释放其实体所占的内存空间
      

  2.   

    你这个类是一个基类,其没有父对象,只有一个类的实例化之后,其父对象(parent)为form(所在窗口)的才会由窗口代为释放。其类的创建函数是Create(self),如果没有(self)或者后面是(nil)都需要自己调用销毁函数来释放自己
      

  3.   

    我意思就是已经创建了FORM,然后我DESTROY 这个FORM的时候,能不能自动释放这个THEDAY类?
      

  4.   

    那你这个类在创建的时候,必须create(self) 将THEDAY的parent:=Form