在delphi中怎样清除和隐藏一个子窗口,急、急!!

解决方案 »

  1.   

    隐藏:Form2.Hide;或Form2.Visible:=false;
    关闭:Form2.Close;或Form2.Free;需要在implementation中uses unit2;(form2所在的单元)
      

  2.   

    是多文档程序吗?在子窗体的OnClose事件中加入Action := caFree;就可以隐藏子窗体了。
      

  3.   

    是这样
    form1.hide;
    form1.free;
      

  4.   

    在多窗体中,Close方法只是把窗体最小化,并没有真正清除窗体实例。要真正清除子窗体需要在子窗体的Close事件中写入下面的语句:
      Action:=caFree;
    判断窗体是否已打开:
    If TForm(Application.FindComponent('SaleForm'))=Nil then
    begin
        SaleForm:=TSaleForm.Create(Application); //如果未打开,则创建
        SaleForm.Show;
    end
    Else
        SaleForm.Show; //如果已经打开,便显示(并不再创建)
    在上例中,子窗体的所属对象为Application。
      

  5.   


    if mainform.MDIChildren[1]<> nil then//mainform为主窗体,
         begin
                ActiveForm.close;//activeform为子窗体
               
         end
    在打开子窗体的事件里做一个循环,关闭所有的子窗体,重新生成新子窗体
    (在每个子窗体里的close事件中  添加 action:=cafree;)  for i:=0 to mainform.MDIChildCount-1 then
          begin
              if mainform.MDIChildren[i]<>nil then
                     mainform.MDIChildren[i].close;
           end;
        然后在生成你的新窗体   
      

  6.   

    已打开的窗口和将要打开的窗口不是同一个窗体,是不是我每打开一个窗口,都要判断每个窗口是否打开并关闭,能不能有一个通用的程序,比如能不能判断打开的窗口句柄(ClientHandle),然后关闭!
      

  7.   

    关闭:在onclose时间中要加action:=caFree,然后close就可以隐藏:child是窗体名
    ShowWindow(Child.handle, SW_hide)
    显示隐藏
    ShowWindow(Child.handle, SW_SHOW)