起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 562|回复: 24

【搞定】表格文挡问题**

[复制链接]
发表于 2007-6-5 17:47:20 | 显示全部楼层 |阅读模式
在TPageControl 上的 TTabSheet 上的 DocView 上有个数据量比较大的表格文档,因为第一次加载时会有几秒延迟, 为了不叫用户以为死机,现在加个提示窗体,如下图。 请问在哪个事件里写好?  要求在文档加载时弹出窗体,在文档加载完毕后释放窗体。

33.gif

4.82 KB, 下载次数: 236

回复

使用道具 举报

 楼主| 发表于 2007-6-6 09:40:01 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2007-6-6 15:22:50 | 显示全部楼层
procedure TDDCXXX.DataSetDDSJJAfterOpen(DataSet: TDataSet);
begin
  if Assigned(FForm) then
  begin
    FForm.Close;
    FForm.Free;
    FForm := nil;
  end;
end;

procedure TDDCXXX.DataSetDDSJJBeforeOpen(DataSet: TDataSet);
begin
  if not Assigned(FForm) then
    FForm := TForm.Create(Context);
  FForm.Caption := 'Before Open';
end;
回复 支持 反对

使用道具 举报

发表于 2007-6-6 15:23:19 | 显示全部楼层
你再数据集打开之前显示这个窗体,在AfterOpen关闭这个窗体就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-6 17:16:41 | 显示全部楼层
是 “表格文档”  它只有 OnCreate 和 OnDestory 事件  我在表格文档上也没有数据集代理
回复 支持 反对

使用道具 举报

发表于 2007-6-6 17:34:42 | 显示全部楼层
不是在表格文档上实现
是在功能的窗体上做,
拖一个数据集代理,连接到要打开的数据集上,然后在这个数据集代理的事件上实现
回复 支持 反对

使用道具 举报

发表于 2007-6-6 17:42:32 | 显示全部楼层
在信息中可以,在功能中可以,就是不要在表格文档中
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-7 09:31:34 | 显示全部楼层
1:在功能上有多个连接该数据集的表现形式 只是在打开 表格文档 时慢,只想在打开 表格文档 时弹出窗体
2:因为业务需要在信息上的每个表现形式AutoOpenDataSet 都是没选中状态, 在每个功能上我都加了信息策略在打开该数据集

楼上的方法试过了,没有效果
回复 支持 反对

使用道具 举报

发表于 2007-6-7 14:31:53 | 显示全部楼层
如果是这样,那么你需要在信息层的需要打开的数据集上来做。
不过需要把Show的窗体放到信息层上,不要放到功能上


要不就是也不要在功能层的信息策略上来打开数据集,而是自己直接在Form 的Show 上,来open打开的数据集。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-7 15:21:45 | 显示全部楼层
9楼的方法我试过,行不通, 因为BeforeOpen 和 AfterOpen  只是一瞬间弹出SHOW窗体,但DOCVIEW 还在在读取数据中,现在我觉得不是数据集造成的慢,是DOCVIEW 造成的
我的方法是在 TPageControl的 OnChange 事件里创建SHOW窗体 在DOCVIEW的OnEnter释放
基本能实现了,但有个缺点用户必须点击下DOCVIEW, SHOW窗体才会消失,需要叫它获得焦点, 但 DOCVIEW上的字段还都是只读的,怎么办?
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-11 18:46 , Processed in 0.044389 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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