我的一段代码用来创建和显示窗体,可是,当第一次窗体正常创建和关闭后,第二次创建时经常会报错inaccesible value代码是这样的:
if not Assigned(frmOrder) then frmOrder := TfrmOrder.Create(Application);
frmOrder.Show();
frmOrder.WindowState := wsMaximized;并且在frmOrder的Close 里做了
Action := caFree;
并在frmOrder的Destroy 里做了
frmOrder := nil在程序开始时的自动创建中已经去掉了的,那么为什么第二次创建时会出错呢?
调试时是
TfrmOrder.Create(Application) 出现上述错误,这个要怎么解决?
if not Assigned(frmOrder) then frmOrder := TfrmOrder.Create(Application);
frmOrder.Show();
frmOrder.WindowState := wsMaximized;并且在frmOrder的Close 里做了
Action := caFree;
并在frmOrder的Destroy 里做了
frmOrder := nil在程序开始时的自动创建中已经去掉了的,那么为什么第二次创建时会出错呢?
调试时是
TfrmOrder.Create(Application) 出现上述错误,这个要怎么解决?
procedure Tfmczview_edt.FormClose(Sender: TObject; var Action: TCloseAction);
beginMainForm.fmczview_edt:=nil;
Action := caFree;end;主窗体打开子窗体的代码
procedure TMainForm.N11Click(Sender: TObject);
begin
if fmczview_edt= nil then
fmczview_edt := Tfmczview_edt.Create(self);
end;在主窗体的public
fmczview_edt:Tform;
我的这个窗体是一个MDIChlid 窗体,一个MDI窗体中有多个MDIChlid窗体,有时个一个MDIChild 窗体的首次打开也会出这样的错误
if assigned(FChargeFrm) then
FreeAndNil(FChargeFrm);
{}
FChargeFrm := TChargeFrm.Create(false);
{注:我的create 重写了,你写成nil就是了}
再说两句,你这个子窗体和主窗体是依赖关系,不要让父亲管理生命期
Fm_pwd:=nil;
但是,编译过后,新的问题出现了,在不关闭子窗体的前提下,第二次新建同一个子窗体报错,这是什么原因呢?郁闷啊,哪位高手给我解答一下................