Windows 7 Delphi5 FormPaint和TopMost无法正常工作

时间:2012-04-03 16:07:28

标签: delphi delphi-5

我有一个程序app1,它使用:

启动另一个应用程序
app2Server := CreateOleObject('app2.Server');
  1. 在ocassion上,它通过调用过程app2Server.SendData将数据和控制传递给app2,然后调用app2Server.TopMost并设置变量dataSent = True

  2. 当用户返回app1时,Form1.OnPaint事件会检查dataSent是否为True,然后从app2中检索一些数据。

  3. 基本上在Windows7上,第2步不起作用。在我看来,有两件事在Window7中不起作用 - app2 OleObject没有被设置为TopMost而且app1 Form没有被绘制(在初始创建之后)。

    这是Win7的已知问题,如果是这样,任何人都可以建议

    1. 将我的app2设置为TopMost和
    2. 获取我的app1表单以确认它何时实时返回。
    3. 非常感谢

      编辑:要更改app1和app2的Z顺序,我使用以下内容:

      SetWindowPos(Form1.Handle,HWND_BOTTOM,0,0,0,0,swp_NOMOVE or swp_NOSIZE);
      app2Server.TopMost;
      

      似乎两者都没有工作。

      ps我继承了这段代码我只需要让它工作:)

1 个答案:

答案 0 :(得分:0)

我的解决方案就是这个

  1. 我在app1中使用了一个计时器来持续检查应用2中的付款,因为OnPaint似乎在Win7中不起作用。

  2. Form1.TopMost实际上在Win7上工作,但仅在应用程序最小化时才有效。欢迎任何建议。

  3. 感谢