读书人

关于动态创建Frame有关问题释放的报

发布时间: 2012-03-15 11:50:39 作者: rapoo

关于动态创建Frame问题,释放的报错
动态创建Frame没问题,如下所示:

Delphi(Pascal) code
   var      Ffrm_Manual:TFrm_Manual;

Delphi(Pascal) code
  if Ffrm_Manual<>nil then  begin    Ffrm_Manual.Free ;    Ffrm_Manual:=nil ;  end;  if Ffrm_Manual=nil then  begin    Ffrm_Manual :=Tfrm_ManualCal.Create(Application);    Ffrm_Manual .Parent :=Self ;    Ffrm_Manual.Align:=alClient ;    with Ffrm_Manual do



但是我在Frame本体里面的释放的时候,有时候会报错,有时候又不报错,如下面所示:
Delphi(Pascal) code
  procedure Tfrm_ManualCal.btn_CancelClick(Sender: TObject);  begin  if Ffrm_Manual<>nil then  begin    Ffrm_Manual.Free ;    Ffrm_Manual:=nil ;  end;  end;


[解决办法]
不要在对象的事件里释放本身
因为btn_Cancel.OnClick释放Frame,会导致btnCancel自己释放,所以可能出错
可以用发WM_Close消息之类的方法关闭,而不是直接Free

读书人网 >.NET

热点推荐