主窗体form1调用子窗体form2时,怎么样使form1最小化时,form2还存在于屏幕上?
还有,怎么去掉窗体上的菜单条,即去掉上面蓝色的那一条

解决方案 »

  1.   

    去掉窗体上的菜单条:BorderStyle:=bsNone;
    最小化:ShowWindow(Handle, SW_MINIMIZE); 
      

  2.   

    使form1最小化时,form2还存在于屏幕上:
    在from1里加入一个按钮(或是别的什么)
    代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowWindow(Handle, SW_MINIMIZE);
      Form2.show;
    end;
    去掉窗体上的菜单条:
    可以在代码众加入BorderStyle:=bsNone;
    也可以直接设置from的BorderStyle属性位bsNone。
      

  3.   

    大概我没说清楚
    主窗体form1调用子窗体form2后(此时有两个窗体form1和form2),怎么样使form1最小化时,form2还存在于屏幕上?
    还有,怎么去掉窗体上的菜单条,即去掉上面蓝色的那一条
      

  4.   

    在调用form2的语句Form2.Show后加上:
      ShowWindow(Self.handle,SW_MINIMIZE);
     此句在form1的代码中设置!
      

  5.   

    大概我没说清楚
    主窗体form1调用子窗体form2后(此时有两个窗体form1和form2),当我按了主窗体form1最小化按钮时,form2还存在于屏幕上?
      

  6.   

    設置一下窗體的BorderStyle屬性為BSNONE將上面的標題欄去掉。
    form1最小化時其實是APPLICATION最小化,所以你的FORM2也會隱藏掉。
    隻要將form1最小化掉而APPLICATION不最小化即可,你也可以攔截form1的最小化事件
    而將其隱藏掉(hide)或直接隱藏FORM1
      

  7.   

    BorderStyle:=bsNone;先关闭、最小化,不显示form1,直接重新触发ShowModal事件,看行不行
      

  8.   

    必须对form2使用非模式的方法显示,就是调用show方法,而不是showmodel。
      

  9.   

    sorry,我的方法不行。还要努力
      

  10.   

    为什么非要把FORM2做成子窗体?
      

  11.   

    procedure TForm1.HandMessage(sender: TObject);
    begin
      ShowWindow(form1.Handle, SW_MINIMIZE);
      ShowWindow(form2.Handle, SW_MINIMIZE);
      ShowWindow(form2.Handle, SW_SHOWNORMAL);
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Application.OnMinimize:= HandMessage;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      form2.show;
    end;
      

  12.   

    如果不是MDI窗体的话,可以在要隐藏的窗体的OnHide事件中显示第一个窗体。不过不显示那个蓝条,还不知道该怎么做。
      

  13.   

    用form2做主窗体也可以,但是如果你不想也可以,效果和我上面的基本效果是一样的
      

  14.   

    我的办法是 form2 做到dll中,form1调用,因为不再一个application中,所以互不影响
    这样做是操作空间比较大,form2可以不用限制得那么死板
      

  15.   

    Form2.Show;
    ShowWindow(Form1.handle,SW_HIDE);