就是做到form2是form1的设置匡那种功能,而且右上角只有x,没有最小化、最大化的?

解决方案 »

  1.   

    你用一个PANEL不行嘛?不用窗体的呀,
    你说的在打开FORM2的时候用SHOWMODEL方法,不用SHOW、方法 ,就可以必须关闭2才能去激活1的这是模态窗体的最大,最小化的按钮,你去设置BORDER好像是这个属性,你自己看看哟,里面有设置他们FALSE就没有啦,
    我经常是加一个PANEL来实现这些功能的
    因为有时FORM2的内容太少了,用一个新窗体划不来用PANEL的VISABLE属性TRUE或FALSE来显示和关闭,用一个按钮,放在PANEL的右上角,设置其CAPTION为X,这样就看起来像是一个半闭按钮的,给他写一个PANEL。VISABLE:=FALSE的事件了,
    很方便,全是自己定制的,如你还不嫌好的话,可以在他的MOUSEMOVE事件中加放一些代码,可以令他在窗体内移动,就真像是新窗体一样,
      

  2.   

    Form2 的 BorderStyle 设置为 bsDialog,Form1 调用 Form2 时使用 Form2.ShowModal;就是你要的效果。
      

  3.   

    Form1 调用 Form2 时使用 Form2.ShowModal
    在form属性里有:Borderlcons.biMinimize和Borderlcons.biMaximize
    把它们都设为False就可以了!
      

  4.   

    你可以,在显示form2时用form2.ShowModal这样后面的form1就不能用了,只有关了Form2才可以
      

  5.   

    我觉得可以在form1加一按钮,然后编辑按钮,form1.show;就可。
      

  6.   

    form1.show好像不行,这样不是模态窗口
    一定要form1.showmodal!
      

  7.   

    方法一;Form2.ShowModal ,缺点:form1一定要等到form执行完才继续执行,解决方法:将modalresult设为false;
    方法二;procedure Createparams(Var Params:TCreateParams);override;
    .....
    procedure TNotesForm.Createparams(var Params: TCreateParams);
    begin
      Inherited CreateParams(Params);
      With Params do  begin
        EXStyle:=ExStyle or WS_EX_TOPMOST OR WS_EX_ACCEPTFILES or WS_DLGFRAME;
        Params.WndParent:=GetDesktopWindow;
      end;
    end;
      

  8.   

    方法二缺点:代码长
    方法三;用api SetWindowPos(application.Handle,HWND_TOPMOST,0,0,800,600,SWP_NOOWNERZORDER);
     
      

  9.   

    那是不是要在FORM1里定义FORM2呢
      

  10.   

    你可以,在显示form2时用form2.ShowModal这样后面的form1就不能用了,只有关了Form2才可以