刚学delphi,n多不懂得地方现在在做一个程序,主界面设定为主窗口,一些功能设定为子窗口,通过主窗口的菜单项调用,现在想实现在调用部分功能的时候将主窗口隐藏,不知道如何实现?
部分代码如下:
procedure TForm2.N5Click(Sender: TObject);
var newform : TForm5;
    i,flag : Integer;
begin
    flag := 0;
    for i := 0 to form2.MDIChildCount do
      begin
        if Form2.MDIChildren[i].Caption  = '密码修改'  then
         begin
           SendMessage(MDIChildren[i].Handle,WM_SYSCOMMAND,SC_RESTORE,0);
           MDIChildren[i].Show;
           flag := 1;
           Break;
         end;
      end;
    if flag = 0  then
    begin
      newform := TForm5.Create(Application);
      newform.Caption := '密码修改'; 
    end;
end;现在还有个问题是该密码修改子窗口不能释放后不能返回主窗口(已经将该子窗口close处action := cafree)

解决方案 »

  1.   

    可以先模态出Login窗口然后通 ModalResult 来判断是否创建主窗体不要用 Application.CreateForm 。看代码可以知道,用这个在建立窗口的时候,第一个窗口就是主窗体。
      

  2.   

    我主窗口就是form2,是自动创建的,然后设了个flag,在主窗口的onactive里面调用login(用flag判断是否是第一次启动主窗口,然后login.showmodal),然后通过验证以后显示主窗口,这些都ok了。但是其他的一些子窗口,比方说密码修改,通过主窗口的菜单建立,具体代码怎么样实现好?
    楼上的能说详细些吗?例如给出些代码,感激不尽~
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
     form2:tform;
    begin
      form2:=tform.Create(nil);
      form2.Caption:='密码修改!';
      form2.Position:=poScreenCenter;
      form2.show;
      form1.Hide;
    end;