我将一个主窗体formstyle属性设为fsmdiform,
然后将另外的窗体设为fsmdichild.
但是我将登录窗体(fmlogin)加进去后,登录进去后
系统就不能运行childform了,
错误为:error reading stausbar1.left:cannot create form,
no mdi forms are currently active.
请指教!!!错误出在哪儿??在线等待!

解决方案 »

  1.   

    弹出是的代码:function Tfmmaininf.openwin(fm:tform):boolean;
    begin
    if (ActiveMDIChild<>fm) or (fm=nil) then
       begin
         if ActiveMDIChild<>nil then
           ActiveMDIChild.Close;
           result:=true;
       end
       else
         result:=false;
    end;procedure Tfmmaininf.N2Click(Sender: TObject);
    begin
        if openwin(fmmain) then
         begin
           application.createForm(tfmmain,fmmain);
           fmmain.Show;
         end;
    end;不加登录窗体时不出错!直接运行时就
    可以!
      

  2.   


    这样做启动窗体!
    program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2},
      Unit3 in 'Unit3.pas' {Form3};{$R *.res}begin
      Application.Initialize;
      try
        form2:=Tform2.Create(application);
        form2.ShowModal ;
      finally
       if form2.Button1.ModalResult =1 then
         Halt
       else
       begin  Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TForm3, Form3);
      Application.CreateForm(TForm2, Form2);
      application.Run;
      end;
      end;
    end.procedure TForm2.Button1Click(Sender: TObject);
    begin
     //在此之前天加数据验证
       self.ModalResult :=mrOk;end;procedure TForm2.Button2Click(Sender: TObject);
    begin   self.Button1.ModalResult:=mrcancel;
       exit;
    end;end.
      

  3.   

    你的登录窗体不应该是fsmdichild类型,其实所有的子窗口也不一定要设成fsmdichild类型的,在mdi主窗口create的自然就是子窗口,不过在子窗口create的窗口就要设置成fsmdichild了,否则将独立显示出来!
      

  4.   

    hllddg说的方法还是不行的。
    登录窗体本来就没设置为 fsmdichild啊!
    但是为什么将登录窗体设为启动窗体就报上面的错误呢?
    而将主窗体设为启动窗体就不会出现上面的错误呢?
      

  5.   

    反正只要我将子窗体设置为fsmdichild就会报错!
    在代码里加 
    fmmaininf.FormStyle:=fsMDIform;
    fmmain.FormStyle:=fsMDIchild;
    也是一样出错!
    究竟是什么原因????
      

  6.   

    不可能的,我的代码是经过测试的,在我的代码中:
    form1:fsmdiform;
    form2:fsnormal;
    form3:fsmdichild;
      

  7.   

    为什么就是不能将login设为启动窗体???
      

  8.   

    from1应设为启动窗体,在OPtion内设定
      

  9.   

    还是不可以!
    运行到
    fmlogin.btnyes.ModalResult=1 出错!!!!
      

  10.   

    有email吗?我给你把原程序发过去吧1
      

  11.   

    follow me~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    创建的的窗体不能为子窗体.因改创建一个Normal窗体,然后将其窗体属性改为CHILD.
      

  12.   

    在工程属性设置中把子窗体设为不活动的。
    主窗体是这样写的
    application.createForm(tfmmain,fmmain);
    fmmain.show;
    子窗体是这样写的
    ChildForm := TChildForm.Create(self);
    childform.show;
    关闭子窗体是在onclose 中
    action := cafree;
      

  13.   

    把你的子窗体全部改为非自动创建。Project --> Options -->  AutoCreateForms(ChildForm) -->Avaliable Forms
      

  14.   

    上面(老吴)说的不行啊,怎么是个死循环?!
    将所有的窗体该为Avaliable Forms不行啊,不能运行啊!
    唉..再看看