怎么同时显示fsMDIForm和fsMDIForm

解决方案 »

  1.   

    先判断内存中是否存在,如果不存在创建,否则直接调用show就可以了
      

  2.   

    fsmdiform.show
    我就是这么写的啊,可是总是出地址错误,怎么回事
      

  3.   

    错误如下:
    Access wiolation at address 0046C7CB in module 'DoctorClient.exe'. Read of address 00000180
      

  4.   

    你还没创建,当然会出错了
    你看你的MDIFORM有没有CREATE
      

  5.   

    我是想做先显示登陆窗体后,用户核对完毕,在打开mdi窗体
    代码如下
    1. 项目单元如下:
    begin
      Application.Initialize;
      Application.ShowMainForm:=false; //程序不显示主窗口  
      Application.CreateForm(TForm_main, Form_main); //创建主窗口
      Application.Run;
    end.
    2. Main单元的OnCreate如下:
    begin
     FrmLog:= TFrmLog.Create(Application); //创建登陆窗口
     if FrmLog.ShowModal=mrOK then self.show //登陆的密码正确,则显示自己
     else Application.Terminate; //否则,程序结束
    end;
    3. login单元如下:
    var
      FrmLog: TFrmLog;
      ErrTime: Integer; //密码输入次数,全局变量implementation
    uses Main; //引用主窗口
    {$R *.dfm}procedure TFrmLog.FormCreate(Sender: TObject);
    begin
     ADOQuery1.Open; //查询密码
     ErrTime:=0; //给输入密码次数赋初值
    end;procedure TFrmLog.Button1Click(Sender: TObject);
    begin
     if ErrTime>=2 then
     begin
      ModalResult:=mrCancel; //密码错误3次,自动关闭,给主窗口返回值mrCancel
      Exit;
     end;
     if Edit1.Text<>ADOQuery1.FieldByName('pswd').AsString then
     begin //密码错误
      inc(ErrTime);
      MessageDlg('密码错误,请重新输入!',mtWarning,[mbOK],0);
      Edit1.Text:='';
      Exit;
     end;
     ModalResult:=mrOK; //密码正确,自动关闭,给主窗口返回值mrOK
    end;end.
    我就是按照这个做的啊,可是一打开子窗体就出错
      

  6.   

    然后,要显示子窗体的,我是这么写的
    Frm_dh:=TFrm_dh.Create(Application); 
    Frm_dh.show;
    然后就出错了
    错误如下:
    Access wiolation at address 0046C7CB in module 'DoctorClient.exe'. Read of address 00000180