起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 103|回复: 8

写了个注销代码的方法但注销后进入主界面报错,但点击确定后可正常使用。

[复制链接]
发表于 2008-7-4 12:00:32 | 显示全部楼层 |阅读模式
报的错是:
abstract error.
或者:


代码如下:请高手帮看看

procedure TCT_DDZB.logout;
var
  mainform,lNewMainForm: TForm;
  FClosing    :boolean;
begin
    mainform := TInit.InitInstance.MainForm;
    FClosing := True;
    try
      FClosing := TSystemCore.FuncManager.TerminateAllFuncs(True);
    except
      FClosing := False;
      raise;
    end;
    mainform.Hide;

    mainform.Enabled := False; // 很重要,不然登录对话框得不到焦点

    TInit.LogoffByUser;
    if TInit.InitInstance.Terminated then
      Exit;

    { TODO: 注销机制需要再做思考,目前会多次运行功能,IE下面的表现效果也需要重点考虑 }
    lNewMainForm := TInit.InitInstance.MainForm;
    if lNewMainForm <> nil then
    begin

      if mainform.Parent = nil then
        lNewMainForm.ParentWindow := mainform.ParentWindow
      else
        lNewMainForm.Parent := mainform.Parent;
      lNewMainForm.BorderStyle := mainform.BorderStyle;

      lNewMainForm.Show;
      Borland.Delphi.Windows.PostMessage(lNewMainForm.Handle, Borland.Delphi.Messages.WM_ACTIVATE, 1, 0);
    end;
    mainform.Release;
end;

error.gif

10.23 KB, 下载次数: 50

回复

使用道具 举报

 楼主| 发表于 2008-7-4 12:04:04 | 显示全部楼层
顺便问下有没有那位实现了注销又没报错的?分享下啊
回复 支持 反对

使用道具 举报

发表于 2008-7-4 13:45:42 | 显示全部楼层
楼主,不要在你在窗体里作注销了。
用业务消息来实现吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-4 15:01:57 | 显示全部楼层
我用了,不符合需求啊。用消息调用的话还要提问时不是要“注销”还要点确定才行。
回复 支持 反对

使用道具 举报

发表于 2008-7-4 15:03:27 | 显示全部楼层
楼主,你可以改造注销的代码啊!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-4 15:04:13 | 显示全部楼层
我们不想在进行“注消”确认了,且还是会报同样的错!
回复 支持 反对

使用道具 举报

发表于 2008-7-4 15:26:42 | 显示全部楼层
最初由 lixinghua 发布
[B]我们不想在进行“注消”确认了,且还是会报同样的错! [/B]

不明白楼主的意思:
1、把代码里确认的部分注释掉了?
2、用消息方式调用主窗体的注销动作还报错?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-4 15:30:50 | 显示全部楼层
1、没把确认部分注释掉。
2、是用消息方式调用主窗体的注销动作还是报错。
直接点击主窗体的注销按钮注销就不会报错
回复 支持 反对

使用道具 举报

发表于 2008-7-4 18:48:46 | 显示全部楼层
找到原因了,在注销时,系统会关闭所有功能,但是由于消息处理器的Excecute方法还没有执行完,导致发送消息的方法没有执行完,导致最终出指针错误。
楼主可以在主界面放一个timer控件,在OnTimer事件中执行注销。同时把timer的enable属性设置为false
消息处理器的Execute事件中,紧紧把timer的Enable设置为true就可以了。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-18 19:56 , Processed in 0.092777 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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