窗体form1上有一个按钮,点击按钮后,弹出另一个窗体form2。如何写代码,实现这样的功能:只有关闭窗体form2,才能激活窗体form1。也就是说,窗体form2始终挡在窗体form1前面,不管怎么移动窗体1,都无法用鼠标激活窗体form1。

解决方案 »

  1.   

    在form2的onshow事件里写 form1.enabled:=false;
    在form2的onclose事件里写 form1.enabled:=true;
      

  2.   

    原来Form2.ShowModal和Form2.Show之间有这么大差别。slatly使用的方法也挺管用。
      

  3.   

    原来Form2.ShowModal和Form2.Show之间有这么大差别。
    ----------
    哈哈,那是~~~相当~~~大啊~
      

  4.   

    方法Show和ShowModal有什么区别?
    --------------------------------------------------------------------------------
    showmodal 显示的是模态窗口,也就是说显示后除非关闭这窗口,否则不会切换到同一个应用程序的其它窗口
    --------------------------------------------------------------------------------
    TCustomForm是Windows窗口(一般窗口与对话框)的基类。它有两个显示窗口的方法:Show()和ShowModal()分别用来显示非模态与模态的窗口。不过,它对于模态窗口的实现并没有利用Windows系统提供的DialogBox()之类的API,而是VCL自己实现的。
    Show()和ShowModal()的具体实现。 
    先是Show(): 
    procedure TCustomForm.Show; 
    begin
     Visible := True;
     BringToFront;
    end;
     Show()的代码非常简单,而且易懂,它的行为与其名称一样的单纯。
    ---------------------------------------------
    VCL中的模态窗口是通过接管线程主消息循环来实现的,只是它的退出循环条件是ModalResult <> 0(ModalResult初始值为0)
    -------以上内容转自《delphi搞手突破》