为什么我在主窗口前做一个登陆验证窗口,但是作为子窗口却不能关闭呢?只能最小化?
做成其他窗口怎么隐藏最小化,最大化,关闭选象?不是在属性里面设置,那样不好

解决方案 »

  1.   

    在子窗口的关闭事件也就是Onclose里写
    Active := cafree;
      

  2.   

    你的是MDI窗体吗?验证窗体不用做成子窗体吧!就算做成MDI字窗体,在子窗口的关闭事件也就是Onclose里写
    Active := cafree;也一定可行呀!
      

  3.   

    不行啊,还是说是只读的,我的设置是这样的:主窗体是MDIForm,验证窗体我把它作为MdIchild,然后在登陆时候子窗体先跳出来,但是却不能关闭,有没有什么好的别的办法?
      

  4.   

    试试这样,在主窗口的onshow的过程中去关闭子窗口;
    还有,这种验证窗口最好不要做成子窗口
      

  5.   

    那该做成一般窗口?
    我想知道是否只需要代码就可以创建一个窗口?我刚才是自己手工建然后再调用form.show的
      

  6.   

    给你一段代码:在建完主窗体后,再新建一个窗体,在工程文件源代码中修改,将Application.CreateForm(TForm2, Form2)这句删除,在Application.Initialize后添加新建的窗体form2,代码如下:
    begin
      Application.Initialize;
      form2:=Tform2.create(application);
      form2.Show;
      form2.Update;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
      

  7.   

    给你一段代码:在建完主窗体后,再新建一个窗体,在工程文件源代码中修改,将Application.CreateForm(TForm2, Form2)这句删除,在Application.Initialize后添加新建的窗体form2,代码如下:
    begin
      Application.Initialize;
      form2:=Tform2.create(application);
      form2.Show;
      form2.Update;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
      

  8.   

    用Application.Terminate;语句退出应用程序应该没问题!
      

  9.   

    Delphi中MDI子窗口的关闭方式默认为缩小而不是关闭,所以当你单击子窗口右上角的关闭按钮时会发觉该子窗口只是最小化,而不是你预期的那样被关闭。解决办法是在子窗口的OnClose事件处理过程中加入如下代码,示例:procedure ChildForm.OnClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action := caFree;
    end;
       Delphi为一个Form的关闭行为指定了四种方式,分别是:caNone 禁止Form被关闭 
    caHide Form不被关闭,但是被隐藏。被隐藏的Form仍然可以被程序访问。 
    caFree Form被关闭,并且释放其占用的资源。 caMinimize Form被最小化而不是被关闭,这是MDI子窗口的默认关闭行为。 
      

  10.   

    在子窗口的关闭事件也就是Onclose里写
    Active := cafree;
    ======================================错了,应该是Action:=caFree;