当前焦点在其他程序上,我的程序想跳出一个提醒窗口。既然是提醒,自然要在所有窗口之上(包括其他程序的窗口)。我搜索了以前的帖子。用showmodal不知为何不行。只能当焦点在本程序时才出现在其他窗口之上。
用SetWindowPos(self.handle, HWND_TOPMOST,
      self.Left, self.Top, self.Width, self.Height,0);窗口会跳出,但闪一下就没了。如果您愿意用messagedlg之类的也可以。我是菜鸟,不大懂。谢谢各位!

解决方案 »

  1.   

    showmodal当然可以了,你的窗体首先visible=false才可以
      

  2.   

    var
     showform:TForm2;
    begin
     showform:=TForm2.Create(self);
     showform.Show;
     SetForegroundWindow(showform.Handle);
    end;这样就可以了
      

  3.   

    我把SetForegroundWindow(showform.Handle);放在form的onShow事件里试验了form2会跳出来闪一下,就消失了,然后会在任务栏里面闪几下(蓝色)
    Application.BringToFront我也试验了,一样。会在任务栏里闪。这个问题看起来很简单,为什么不行?我是菜鸟,所以form2是最初就创建好的,不是在事件发生时再创建的。
      

  4.   

    当然设置窗体的formstyle为fsstayontop旧可以了
      

  5.   

    我的代码:procedure TForm1.Button1Click(Sender: TObject);
    begin
      sleep(2000);
      form2.FormStyle:=fsStayOnTop;
      form2.Show;
    end;还是只是闪一下就消失了。需要手动把焦点给我的程序。
      

  6.   

    如果你用delphi6.0
    formstyle:=fsStayOnTop
      

  7.   

    我用的是delphi7 enterprise trial工程中如何写?
      

  8.   

    后来发现,我把窗口formstyle 设成topmost我把它做成exe文件后,运行可以但为什么在ide中就不行呢?只闪一下。有高手能告诉我吗?