起步软件技术论坛-X3

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

SysUtils.Abort 问题,当前版本 3068

[复制链接]
发表于 2008-10-18 09:25:59 | 显示全部楼层
楼主,我这边测试了一下,beforepost中写了SysUtils.Abort ,然后接管了主窗体的OnCloseQuery事件(就是加了一个注释),然后运行后(business.exe)录入一个主键重复的数据,然后保存没反应,然后就直接关掉这个功能,没有问题。
注:我没有3068,是在3088上做的测试,这两个版本区别应该不大的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-18 09:57:25 | 显示全部楼层
你是在设计环境里单独运行的这个功能,还是从初始化运行或从IE里运行的?

这两个地方运行效果不一样!!!
回复 支持 反对

使用道具 举报

发表于 2008-10-18 10:02:26 | 显示全部楼层
business.exe运行的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-18 11:08:19 | 显示全部楼层
我又看了一下 No.21  的步骤,你的操作不符合我们的要求,你在OnCloseQuery事件里加了一个注释,关闭时就不执行 beforepost 事件了,不管 beforepost  里有什么代码都不会执行了,那这样 beforepost 还有什么用呢?
回复 支持 反对

使用道具 举报

发表于 2008-10-18 11:11:46 | 显示全部楼层
楼主,你理解错了吧?????
注意一点:OnCloseQuery仅仅是判断在关闭窗体的时候判断数据集是否有提交,如果没有提交给出一个提示:是否保存。(平台默认做好了,接管这个事件仅仅是用于自己给出是否保存的提示,然后可以自己来做代码逻辑)。beforepost跟这个事件没有关系。

我接管这个事件仅仅是把平台默认的那个保存提示取消而已。你现在的问题是,没有接管该事件,然后由于你在beforepost中执行了sysutils.abort,而没有执行dataset.cancel(即取消数据集的更新),所以当前的数据集还处于未提交状态,那么关闭这个窗体的时候,就会给出一个是否保存的提示,然后才有你1楼的问题(确认过,跟你描述的相符:出你1楼的图,窗体全屏,然后才关掉这个功能的,没有其他错误了)
回复 支持 反对

使用道具 举报

发表于 2008-10-18 11:17:18 | 显示全部楼层
所以,看楼主的要求了,看到底要怎么来做了,或许换个思路换个做法也就过去了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-18 11:32:15 | 显示全部楼层
前天我就在OnCloseQuery里写了判断代码,没保存时也给出了是否保存提示,现在的问题是点了保存后如果数据违反约束还是会出现类似 1 楼的错误提示询问是否结束,而不是一个只带确定按钮的提示,我说明白了吗?

算了吧,看来只能这样了,但是突然全屏的问题得想办法解决啊!

全屏的问题解决了再通知我吧,谢谢了!
回复 支持 反对

使用道具 举报

发表于 2008-10-18 13:49:45 | 显示全部楼层
你说的这个问题我明白,也存在。
我的意思是,你还种思路来做。
回复 支持 反对

使用道具 举报

发表于 2008-11-3 15:40:06 | 显示全部楼层
全屏问题修改方法如下

修改标准风格主窗体(“业务模型\系统空间\简洁风格\界面库\窗体库\标准风格主窗体”)
...
procedure TSTANDARDSTYLEMAINFORM.RemoveContainer(AContainer: TFuncContainer);
begin
  try
  //加上这句
  AContainer.DisableAlign;  
    if (AContainer.Func <> nil) and (AContainer.Func.MainForm <> nil) then
    begin
      AContainer.Func.MainForm.Hide;
      AContainer.Func.MainForm.Parent := nil;
    end;
  finally
    FFuncContainers.Remove(AContainer);
    AContainer.Free;
  end;
end;
...
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-25 10:41 , Processed in 0.049854 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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