现在做的软件要用父子窗体的形式,但是在加载父窗体之前有一个登陆窗体!登陆后调出父窗体,但是在父窗体内就无法调出他的子窗体,如果去掉前面的登陆窗就正常了,请问是什么原因!应该如何实现!请高手赐教?在线等待

解决方案 »

  1.   

    窗体动态创建,不知道在你的 DPR 文件里是怎么写的 
      Unit1 in 'Unit1.pas' {Form1};
      Application.CreateForm(TForm1, Form1);
      这些要正确设置才行的是不是还设置了  project->options->forms 的相应选项
      

  2.   

    是不是你的窗体的属性设置的存在问题的啊 
    主窗体是不是MDIFORM 而其他的窗体设置的是NORMAL的啊我只是推测啊
      

  3.   

    你显示父窗体的时候是不是用showmodel()的?
      

  4.   

    原因是父窗口一定要在project option里面是处于main form的位置。
    要实现你说program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1};{$R *.res}begin
      TForm1.Create(Application);
      Form1.show;
      form1.update;
      Application.CreateForm(TMainForm, MainForm);
      form1.hide;
      form1.free;
      Application.Run;
    end.的功能就要在工程中写代码。像这样:
      

  5.   

    你的登录窗体试那类型的
    (TMDIClient\TForm)?
    1.建议你把他设为TForm
    2.在选项菜单中设定登录窗口为自动加栽
    3.栽主窗体中的生成事件代码中添加:
      fLogin.ShowMedol;
      fMain.Hild;
      

  6.   

    在主窗体(Main)的Create里写如下代码:
    MainCreate(Sender: TObject);
    begin
      Form1:=TForm1.Create(nil);
      if Form1.showmodal=Mrok then
      begin
        ………………
        Form1.free;
      end
      else
      Application.Terminate;
    end;
    其中登陆窗体(Form1)有确定按钮和取消按钮了!确定按钮的ModalResult属性设为:mrok
      

  7.   

    这样是可以了,不过我要进行身份验证,这样写的话,不管用户名和密码是否正确,只要点了确定按钮就运行父窗体了,我要的是当密码错误就不SHOW!
      

  8.   

    用ILYYLM521125(ILYYLM521125) 的方法,在确定按钮的OnClick事件中判断用户名和密码是否正确,正确把ModalResult属性设为:mrok,错误把ModalResult属性设为:mrCancel
      

  9.   

    在主窗体(Main)的Create里写如下代码:
    MainCreate(Sender: TObject);
    begin
      Form1:=TForm1.Create(nil);
      if Form1.showmodal=Mrok then
      begin
        ………………
        Form1.free;
      end
      else
      Application.Terminate;
    end;
    其中登陆窗体(Form1)有确定按钮和取消按钮了!确定按钮的ModalResult属性设为:mrok
    可以揭帖啦:)。