Send一个Click在(0,0)的消息即可.

解决方案 »

  1.   

    可能是window2000的Bug,我在window2000下经常遇到这种情况。
      

  2.   

    是win98,可能跟此时没有可见窗体有关。Kingron:何时发是个问题。yypp(彭哥):我觉得我的用法应该没问题,自己写的,没用控件。我不喜欢一点小功能都用第三方控件,这样就没必要用Delphi了。
      

  3.   


    if WindowState <> wsMinimized then
      Application.BringToFront;
    PopUpMenu1.Popup( X, Y );
      

  4.   

    操作系统相关,
    在回答你的问题之前,我的一个TrayIcon运行正常(自己做的)
    但是过了一会,就不正常了,和你说的症状一样!
    所以断定是系统问题!我的系统是2000Professional。
      

  5.   

    回Musicwind(吾爱是Yaya!):
        1、我知道,在存在可视窗体的前提下加上Application.BringToFront能解决问题。可是象其它大多数这类程序一样,我的菜单弹出时是肯定不想让任何窗口可见的。
        2、在我的系统上,其它TrayIcon程序都绝对正常。问题的症结好像是:在菜单外部点击时,Application 没有获得转为后台的消息,因为本来就不是在前台。能让系统发出这条消息就行了,不过不能自己发,因为鼠标点击(在外部)本身无法直接截获。
    ...
    ...
    半小时后,问题解决。
        SetForegroundWindow(Application.Handle);
        Application.ProcessMessages;
        PopupMenu1.Popup...
      

  6.   

    C_Sharp:
        帮了你还要送你分。
        唉,这是我在CSDN上的唯一提问,我很菜呀......
      

  7.   

    我也碰到了类似问题,解决不了。
    今天来搜了一把,发现这儿讨论的不错,但是我还是不怎么明白,因为我很菜拉!~ 请问Kingron大哥,“Send一个Click在(0,0)的消息即可.  ”怎么SEND?何时何处SEND?
      
      ImFool,"SetForegroundWindow(Application.Handle);
              Application.ProcessMessages;
              PopupMenu1.Popup..."
             这段代码加在哪儿呢?
      

  8.   

    我已经搞定了,真的要多谢ImFool呀!
    来http://www.csdn.net/expert/TopicView.asp?id=248953 我给你加分!