写了个程序,主窗体在NoCreate时间中写
  Application.CreateForm(tDLCT,DLCT);
  DLCT.ShowModal;
  DLCT.Free;end;
在登陆窗口的button按钮事件中
判断语句………………
begin                    //显示主窗体
  ZJM.Show;
  DLCt.hide;     
end;
进入程序后,主窗口form1调用form2
  form2:=form2.Create(Application);  
  form2.ShowModal;
  form2.Free;
这样调用后,如果切换窗口,form2便会隐藏,要单击下左键,form2才会弹出来。
请问这是什么问题造成的,为什么?

解决方案 »

  1.   

    同意楼上,这样form2就是主窗体的子窗体了
      

  2.   

    Quote: 引用 2 楼 simonhehe 的回复:

    Quote: 引用 2 楼 simonhehe 的回复:

    还是不行!!
      

  3.   


    1 在项目属性->forms->自启动窗体列表中, 去掉form2
    2 form1中uses unit2
    3 调用事件这么写,(声明一个局部变量, 用完后释放)
    var
      frm : Tform2;
    begin
      frm:=Tform2.Create(self);
      try
        frm.ShowModal;
      finally
        frm.Free;
      end;
    end;
      

  4.   

    楼上的,还是说下你的调用顺序吧。是不是我的顺序有错误……
    先说我的
    主窗体:ZXT,登录窗口:DL,调用窗口:form1;
    开始启动窗口ZCT和一个DataModule1连接数据库用。
    在zxt的oncreat事件中  
      Application.CreateForm(tDL,DL);
      DL.ShowModal;
      DL.Free;
    在登录窗口中,成功登陆
         ZCT.Show;
        DL.Hide;
    ZCT中
      form1:=Tform1.Create(self);
      form1.ShowModal;
      form1.Free;
    我就简写了,上面说的方法我都用了,没有效果。
      

  5.   

    楼主的MainForm是不是MDI窗体啊?不是的话这样没问题,是的话还没看过
    3个窗体
    LoadForm,MainForm,ChildForm;Source:begin
      Application.Initialize;
      Application.CreateForm(TMainForm, MainForm);
      Application.CreateForm(TLoadForm, LoadForm);
      try
      LoadForm.ShowModal;
      finally
      LoadForm.Free;
      end;
      Application.Run;
    end.
    MainForm:procedure TMainForm.btnOpenCClick(Sender: TObject);
    begin
    ChildFrom:=TChildFrom.Create(Self);
    try
    ChildFrom.ShowModal;
    finally
    ChildFrom.Free;
    end;
    end;ChildForm:procedure TChildFrom.btn1Click(Sender: TObject);
    begin
    ShowMessage('I will close!');
    close;
    end;LoadForm:procedure TLoadForm.btn1Click(Sender: TObject);
    begin
    ShowMessage('OK');
    close;
    end;
    你的代码里:DL.Hide; 这句不用的吧。上面已经Free了!还隐藏做什么呢!
      

  6.   

    我终于知道我错在哪里了,我登录窗口不应该再show主窗体,应该直接close,然后上边有一个with do
    我直接close,加上窗口名字就好了,谢谢了。