把form2做为模态窗口即可完成如你所愿

解决方案 »

  1.   

    使用有模窗体。
      try
        Application.CreateForm(TForm_ygrcgl, Form_ygrcgl);
        Form_ygrcgl.showmodal;
      finally
        Form_ygrcgl.free;
      end;
      

  2.   

    楼上的,如果不showmodal ,能保证焦点只在form2上吗?
      

  3.   

    Form2.ShowModal就可以了,不需要再写代码了
      

  4.   

    如果那样,就要拦截windows消息。
    拦截WM_ACTIVATE消息,收到此消息即让form2显示在最前,也可让它获得焦点。
    如:
    form2.WMACTIVATE( var msg: TWMACTIVATE); message WM_ACTIVATE
    begin
      form2.setfocus;
      //do something...
      result:=1;  //告诉windows此消息处理完毕
    end;
      

  5.   

    hehe,是 form.showmodel手误
      

  6.   

    楼上的各位真不好意思,你们所说的都没错,但不是我想要的,我的意思是当鼠标点到WINDOWS的状态栏(或程序以外的地方)都要没反应才行啊
      

  7.   

    看样子你满狠的,这样的方法还不知具体如何做,
    如果把光标控制在form2中,不是就达到目的了吗?
    但我不知道如何做。
      

  8.   

    你说的没错,但难就难在如何把光标控制在form2中,有哪位能指教一二
      

  9.   

    将光标控制在Form2中,这样做:SetCapture(Form2.Handle);
      

  10.   

    1.在Unit2中声明public段下定义一个处理过程:   procedure AppBringtoTop(Sender:TObject);   2.在Form2的oncreate事件中加入*句如下:   procedure Tform2.FormCreate(Sender:TObject);   begin    Application.OnDeactivate :=AppBringtoTop; //*   end;   3.编写AppBringtoTop过程程序如下:   procedure TForm2.AppBringtoTop(Seader:TObject);   begin    SetactiveWindow(Handle); //API函数,将本窗体提至最前   end; 
      

  11.   

    很简单form2显示的时候让from2.showmodel;就行了。