在主窗口main之后打开登录窗口login,输入密码不超过三次大于三次主程序关闭登录成功
还得打开一个导航窗口mainchild,如何写在线等

解决方案 »

  1.   

    你没有说清楚
    这个很简单,注意的是login用ShowModal
      

  2.   

    program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2},
      Unit3 in 'Unit3.pas' {Form3};{$R *.res}begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      try
        form2:=Tform2.Create(application);
        form2.ShowModal ;
      finally
       if form2.Button1.ModalResult =1 then
         Halt
       else
       begin  
      Application.CreateForm(TForm3, Form3);//form3为mainchild窗体
      Application.CreateForm(TForm2, Form2);//form2为非子窗体
      application.Run;
      end;
      end;
    end.procedure TForm2.Button1Click(Sender: TObject);
    begin
     //在此之前天加数据验证
    //可以设一个公用变量,比如n,使n在窗体加载时等于0,每次点击按钮如果不成功时加1,
    //如果n>3则应用程序退出。ok了,别忘了给分哦!
       self.ModalResult :=mrOk;end;procedure TForm2.Button2Click(Sender: TObject);
    begin   self.Button1.ModalResult:=mrcancel;
       exit;
    end;end.
      

  3.   

    可以在工程文件写判断代码
    首先登陆窗体置为模态Frm_login.Showmodal
    if Frm_login.Showmodal=1 then
    begin
      Frm_login.Free;
      Application.run;
    end
    else
    begin
      Application.terminate;
     Application.run;
    end;
    其次登陆窗体Frm_login的进入按钮事件中判断密码是否正确,可以通过全局变量累计用户密码出错的次数,如果累计次数大于3,则Frm_login.modalresult :=mrcancel;
    否则 Frm_login.modalresult :=1;