子窗体在打开、关闭以后,在通过主窗体关闭数据集的时候会出现指针错误
解决过程分为2步:
1.不要每次都创建子窗体,第一次创建,在关闭主窗体的时候在释放子窗体对象:
procedure TCT1.DataGrid1DblClick(Sender: TObject);
begin
if not Assigned(lForm) then
lForm :=TMainForm.Create(self.Context);
try
lForm.Showmodal;
finally
lForm.Close;
end;
end;
procedure TCT1.BizFormDestroy(Sender: TObject);
begin
if Assigned(lForm) then
lForm.Free;
end;
2,子窗体上用到了很多数据集关联的空间,在主窗体关闭数据集的时候,子窗体上还在使用,导致出指针错误和 运行系统初始化的时候发生异常:Cannot focus a disabled or invisible window
解决方法:
把所有子窗体上用到的datasetbroker.enable :=False在BizFormDeactivate事件上,在对应的事件上设置成True就可以了