EOSError:A call to an OS function failedDelphi cx控件

解决方案 »

  1.   

    遇到过这种问题,以前用xpMenu的时候遇到过,好像是xpMenu的源码有问题
      

  2.   

    哦!真的吗?我加入了XPMenu 
    以前没有出现这样的问题,最近出现,XPMenu一直都有的.去掉试试看.
      

  3.   

    测试过,不是XPMenu的问题.请高手指点
      

  4.   

    几天了还没有答复,测试发现 Eoserror Code = 0 ,请遇到类似问题的朋友进.
      

  5.   

    我的程序是在按了ctrl+alt+del后返回就会出A call to an OS function failed 的错误提示, 也是有用到xpmenu控件, 但如果去掉了xpmenu就无这个提示了. 我的环境是:winxp sp2,delphi7, xpmenud7(源程序修改日期是2006.4.28的版本). 现在想知道是xpmenu源代码哪里的问题, 看能否修复.
      

  6.   

    如果是在DELPHI下run程序, ctrl+alt+del 后返回DELPHI就会提示出现一个EOSERROR,然后光标就停在了XPMENU.PAS里面的procedure TXPMenu.DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect;
      Selected: Boolean);
    begin
      if FActive then
        MenueDrawItem(Sender, ACanvas, ARect, Selected);
    end;
    最后的end;哪里的, 估计是 menudrawitem里面出问题了,但如在menudrawitem里面设置断点,从锁屏恢复后单步执行却没出错, 所以怀疑是锁屏恢复后的一瞬间drawitem对一个不能显示的资源进行操作了,但是哪个就找不到了...
      

  7.   

    还是没有解决.我测试的情况好象与XPMenu没有太大的关系.
      

  8.   

    刚刚找到原因。程序中用了一个Timer来判断鼠标是否移动到窗体上,此时用了windows函数:
    nowHandle := WindowFromPoint(Mouse.CursorPos);当屏保或者锁定计算机,解锁后,就会提示:
    a call to an os function failed.将nowHandle := WindowFromPoint(Mouse.CursorPos);屏蔽后不再出现该错误提示。希望以上的解答能给遇到相同问题的兄弟帮助!