请问各位大哥:
   FreeOnRelease
   Free
   Destroy
的区别是什么?

解决方案 »

  1.   

    FreeOnRelease是针对COM组件的,你无需理它。
    Destroy要比Free安全一些它会进行一些前期检查,如果对象存在则释放对象,如果不存在了就不释放(因为Delphi中所谓的对象不过是一个指向对象的指针而已)而Free有点强制释放的意义在里面
      

  2.   

    请看看这段,显然free要比destroy好,楼上的说反了procedure TObject.Free;
    begin
      if Self <> nil then
        Destroy;
    end;
      

  3.   

    procedure TObject.Free;
    asm
            TEST    EAX,EAX
            JE      @@exit
            MOV     ECX,[EAX]
            MOV     DL,1
            CALL    dword ptr [ECX].vmtDestroy
    @@exit:
    end;
    自己看吧,我是从Delphi5里面摘录的。
      

  4.   

    抛开这些不谈,我个人释放习惯用FreeAndNil