请问大家以下,我现在有一个问题,可是mrYes编译出现没有定义,一个应用程序,采用mdi窗体结构,首先出现一个登陆窗体,成功后进入主窗体(即 frmMdiForm);
可是在调用frmMdiChild窗体是出现错误,提示没有活动的mdi主窗体,不知怎么回事?如果不出现
登录窗体,即把应用程序的主窗体设为frmMdiForm,则没有问题,可以调用frmMdiChild,但这时
不能出现登录窗体,如果要先出现登录窗体,又要使用mdi结构应该怎么办呢?在修改Project文件.
  with TLogin_w.Create(Application) do
  begin
    showmodal;
    If modalResult=mrYes Then
    begin
      Application.Title := '';
      Application.CreateForm(Tmain_w, main_w);
      Application.run;
    end;
  end; 

解决方案 »

  1.   

    mrYes是在Controls单元定义的,你在Project文件里没添加,mrYes值为6。
      

  2.   

    Application.CreateForm(TfrmMain, frmMain); //主窗体
      Application.CreateForm(TDm, Dm); 
      Application.CreateForm(TfrmLogin, frmLogin); //登录窗体
      application.ShowMainForm := false;
      if frmLogin.ShowModal <> mrOk then
        application.Terminate ;
      frmLogin.free;
      Application.Run;主窗体还是设为frmMdiForm
      

  3.   

    我试以下,还是不行,
    Application.CreateForm(TfrmMain, frmMain); //主窗体
      Application.CreateForm(TDm, Dm); 
      Application.CreateForm(TfrmLogin, frmLogin); //登录窗体
      application.ShowMainForm := false;
      if frmLogin.ShowModal <> mrOk then
        application.Terminate ;
      frmLogin.free;
      Application.Run;
      

  4.   

    这个问题我也碰过,我的解决方式是这样的,没有问题:
    一、在 progiect(工程)中
    begin
     Application.Initialize;
     Application.CreateForm(TDataMod,DataMode);
     Login := TLogin.Create(Application);//登陆窗体
     begin
      Try
        Login.ShowModal;
      Finally
        Login.Free;
      end;
    end;
    Application.Run;
    二、在登陆窗体中“登陆”按钮中
    Application.CreateForm(TMainForm,mainform);
    mainform.Show;
    三、在 MainForm窗体中(主窗体,也就是MDI主窗体)
    procedure TmainForm.FormShow(Sender: TObject);
    begin
      mainForm.FormStyle := FSMDIForm;
    end;
    按照我说的,应该就不会错,因为我就是这样做的
      

  5.   

    chengguandong(萧月寒) , 问题解决了,谢谢大家