1、 我建了一个MDI工程,使用edit无法设置passwordchar属性,这个问题怎么解决啊?
 2、假如建一个普通的application,我将一个form1的formstyle设为fsMDIform,另一个form2的formstyle设为fsMDIchild,form1能够生成,但在form1中使用create()创建form2时产生一个“NO MDI FORM ACTIVE”的错误,我没有理解这是为什么,该如何解决呢?

解决方案 »

  1.   

    是不是应该在工程文件中把创建 form2的语句去掉,再在form1中创建窗体呢
      

  2.   

    我有啊,我在工程文件中只创建了form1
      

  3.   

    1.passwordchar 把里面的#0 改成* 不行?
    2.procedure TForm1.Button1Click(Sender: TObject);
    begin
       form2 := Tform2.Create(Application);
       form2.Show;
    end;
      

  4.   

    1、我采用MDI application时,edit控件是没有passwordchar属性的
      

  5.   

    2、
     1)密码登录界面:
      procedure Tfrm_Login.btn_enterClick(Sender: TObject);
       var
        frm_Main : Tfrm_Main;
       begin
        frm_Main:= Tfrm_Main.Create(application);    frm_Login.Free;
       end;
      2)frm-main界面: //frm_main的formstyle属性为 fsMDIForm 
       procedure Tfrm_Main.Mu_BeginClick(Sender: TObject);
    begin
         PRO_CallCenterStart();
    end;procedure Tfrm_Main.PRO_CallCenterStart;
    var
      frmCHILD:TfrmCHILD;  //frmCHILD的formstyle属性为 fsMDICHILD
    begin
      frmCHILD:=TfrmCHILD.Create(application);
    end;
      

  6.   

    你把edit放在那里?我试了都有啊[新建的也有]。你换一个edit试试
      

  7.   

    在程序运行中可以创建frm_main窗口,而创建frmchild则出现我刚开始提示的错误
      

  8.   

    MDIForm为主窗体。在主窗体中这样调用密码框:
    procedure TMainForm.FormActivate(Sender: TObject);
    begin
       try
       frm_Login:= Tfrm_Login.Create(Application);
       frm_Login.ShowModal;
       finally
       frm_Login.Free;
       end;
    end;-------------------------
    procedure Tfrm_Login.btn_enterClick(Sender: TObject);
    或者把这个定义去掉试试
    var
    frm_Main : Tfrm_Main;
      

  9.   

    看看你的project option 面板里main form一栏是不是你的frm-main
      

  10.   

    创建窗体不一定要象你那样的
    var
       frm : Tform
    ......
       frm := Tform.create(application);
    这个要看需要的,象MDI application 中它是为了能继承一个TMDIchild【动态】创建多个实例。这样就不需要做N个MDIchild的。但是mainfrm不需要这么创建。
      

  11.   

    在option 设置里主窗体为frmmain.[auto-create forms]
    其它为[availabel forms]
    1.在frmLogin创建
      var frmlogin : Tfrmlogin
      Function  CreateLoginfrm : boolean;  ....
      Function  CreateLoginfrm : boolean;  
      begin
        result := False;
        frmlogin:= Tfrmlogin.Create(Application);
        frmlogin.ShowModal;
        if frmlogin.ModalResult = mrok then
        result := True;
      end;
      然后在密码验证以后设置。frmlogin.modalresult := mrok
    2.在你的工程文件总加上
      if createfrmlogin then
      Application.CreateForm(Tfrmmain, frmmain);
      

  12.   

    frmLogin里
    位置:
            var frmlogin : Tfrmlogin
            Function  CreateLoginfrm : boolean;
            implementation
            {$R *.dfm}
    .....................
      

  13.   

    兴哥,我这样做了之后出现了一个"[Error] MDIAPP.dpr(15): Undeclared identifier: 'createfrmlogin'"
      

  14.   

    你所说的在工程文件中加上判断的程序是这样的吗:
      program Mdiapp;uses
      Forms,
      MAIN in 'MAIN.PAS' {MainForm},
      CHILDWIN in 'CHILDWIN.PAS' {MDIChild},
      about in 'about.pas' {AboutBox},
      Login in 'Login.pas' {frm_Login},
      CallFuc in 'CallFuc.pas';{$R *.RES}begin
      Application.Initialize;
      if createfrmlogin then
      Application.CreateForm(TMainForm, MainForm);
      Application.Run;
    end.
      

  15.   

    呵呵 我写错了你也不能照抄啊。
    是 createloginfrm  不是 createfrmlogin
      

  16.   

    呵呵,因为我刚才正在用另外一种方法在试这个程序,还是出现NO MDI FORM ACTIVE”的错误,一急就从你这直接copy了
      

  17.   

    呵呵,因为我刚才正在用另外一种方法在试这个程序,还是出现NO MDI FORM ACTIVE”的错误,一急就从你这直接copy了