起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: didi0225

【结贴】急:文档关联,数据集不能关闭?

[复制链接]
 楼主| 发表于 2009-9-7 17:17:35 | 显示全部楼层
帮看看
回复 支持 反对

使用道具 举报

发表于 2009-9-7 17:55:33 | 显示全部楼层
869209605
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-8 17:35:51 | 显示全部楼层
还没得么
回复 支持 反对

使用道具 举报

发表于 2009-9-9 08:39:04 | 显示全部楼层
稍等正在看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-9 15:14:48 | 显示全部楼层
:p

太感谢尚工了, 花了两天的时候帮我看这个问题
已经搞定.再次谢谢.
回复 支持 反对

使用道具 举报

发表于 2009-9-9 16:51:48 | 显示全部楼层
设计的时候有连个窗体:主窗体和子窗体,双击主窗体上的datagrid后弹出子窗体,
两个窗体使用的同一个数据集,子窗体上用到了文档关联

子窗体在打开、关闭以后,在通过主窗体关闭数据集的时候会出现指针错误
解决过程分为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就可以了

问题二:每条记录关联的附件都是第一条的,在子窗体上有个没用标准数据集控件,这个数据集取到的数据和主数据集是同一个表,所以会导致切换记录的时候附件没有跟着切换
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-16 07:25 , Processed in 0.042468 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表