在Free后面还有语句对Form操作,出错时给你造成的错觉罢?

解决方案 »

  1.   

    除以上原因外,还有就是元件不能Free其Parent,比如你要在Form1上的Button1的Click事件中Free Form1,这就会引发一个异常。
      

  2.   

    楼上的东北人:
        你说的和我的情况相吻合,可我将Form1.free放在form的close事件上,也引发了异常!
      

  3.   

    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action := caFree;
    end;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      vForm: TForm;
    begin
      vForm := TForm.Create(nil);
      vForm.Free;
      if vForm = nil then
        ShowMessage('指针地址已经有了,释放空间也没有用');
      if Assigned(vForm) then
        ShowMessage('判断是否有分配资源比较合理');
    end;
      

  5.   

    似乎是这样,如果你在程序运行中创建了FORM,则需要用FREE去释放,如果是程序本身的FORM,则由程序本身释放。