LoginForm := TLoginForm.Create(Application);
Application.CreateForm(TMainMenuForm,MainMenuForm);
LoginForm.ShowModal;

解决方案 »

  1.   

    两位没有明白我的意思,我的意思是说,我有很多MIDFORM应用,现在连在一起,可以看到不同的工作界面.在LoginForm生成之前还不能确定要生成哪个MIDFORM
      

  2.   

    LoginForm为子窗体,生成界面窗体为父窗体,
    再加人判断语句来判断用户登录时根据其权限和所在部门的不同,生成不同的工作界面。
      

  3.   

    好像一个application只能有一个MDIForm吧
    楼主不妨换个思路,MDIForm固定,然后动态生成不同的MDIChild
    不就可以了
      

  4.   

    只用控制MDIForm的菜单项就可以了,怎么一个application弄出几个MDIForm出来了?
      

  5.   

    你的窗体组合有问题,不容置疑,这个工程只能有一个MDIForm,其他全为child,不同的权限显示不同的界面,这个界面并不一定非得用MDIForm不可吧!
      

  6.   

    先自己定义一个全局记录,便于用户登录后放置用户信息(如ID、姓名、权限等)
    然后在工程文件里进行控制,用户满足什么条件就启动相应的窗体
    begin
      frmLogin := TfrmLogin.Create(Application);
      frmLogin.Update;
      frmLogin.ShowModal;
      if frmLogin.ModalResult = mrOK then //登录成功
        begin
          frmLogin.Free;
          frmLogin.Hide;      if 记录.权限 = 1 then
            begin
              Application.CreateForm(TfrmMain1,frmMain1);
            end
          else if 记录.权限 = 2 then
            begin
              Application.CreateForm(TfrmMain2,frmMain2);
            end
              .
              .
              .
              .
              .
          Application.Run;
        end
      else
        begin
          Application.Terminate;
        end;
    end;以上纯属个人意见,成功与否看你自己了,呵呵
      

  7.   

    TO del_c_sharp(头大中......) 
      这个问题我尝试了很多方法,错误提示均为"No MIDForm is Activitied"
    只要MIDForm之前有窗体生成的话就会出错.
    问题的症结在哪里呢?难道不能这样吗?
    TO lemon_jyg(lemon)
    我现在已经也只能采用这种方法了,但是要搞清楚,上面那种方法到底行不行.
      

  8.   

    我刚刚帮你进行了一个简单的测试,确定没有任何问题,你上面提到的“No MIDForm is Activitied”错误可能是由于你的设置与代码问题
      

  9.   

    看来xqjt(蜂鸟) 说的没有错,确实是可以的
      

  10.   

    主窗体肯定第一个生成,我的意思是,你先不要改他的formstyle,合适时再改
      

  11.   

    在工程中添加你的登陆框,也要把一些相关的数据库信息也预先load了
      

  12.   

    Impylm(韩冰) :
    有个问题想请教,想编一个MIDI窗口查询程序,第一次查询后弹出查询结果在第一个MIDI窗口,第二次查询后弹出查询结果在第二个MIDI窗口,第三次....,每次MIDI窗口的结果不一样,但我编出的结果却是所有MIDI窗口显示结果均为最后一次的。怎样解决这个问题,期待你的答复。( [email protected] )