==============>
这下面是工程部分:
 Application.Initialize;
  Application.Title := '邮购管理系统';  Application.CreateForm(TDB_Main, DB_Main);  form4:=Tform4.Create(application);
  form4.Show;
  form4.Update;
  Application.CreateForm(TMain_fr, Main_fr);  //启动主窗体with Tlogin_fr.Create(Application) do
 begin
    ShowModal;
   if not enabled then//第三次
     begin
      login_fr.free;
      form4.free ;
      Application.Run;
     end;
 end;
end.//第四次
============================》在login_fr文件中
 if db_main.Table_login.Locate('loginName',edit1.Text, [loCaseInsensitive])=false then
          begin
           application.MessageBox('你的账号不正确,请重新登录!!!','错误',mb_ok);
           edit1.SetFocus;
           exit;  //第一次
          end;       if db_main.Table_login.FieldByName('pwd').AsString<>trim(edit2.text) then
         begin
            application.MessageBox('你的密码不正确,请重新登录!!!','错误',mb_ok);
            edit2.SetFocus;
            exit;
         end
       else
         begin
             Application.CreateForm(TMain_fr, main_fr);
             //enablewindow(handle,false);//窗口一不可用
             main_fr.Show;         end;
       db_main.Table_login.Close;
    finally
       db_main.Table_login.Close;
       //application.MessageBox('数据出错,系统将关闭!','错误',mb_ok);
       //application.Terminate;
    end;
end;//第二次end.在调试中,我特意输入一个错的用户名。 执行步聚如上我有标出。
在程序中关于登录的我还有些不明白。
with Tlogin_fr.Create(Application) do
 begin
    ShowModal;
   if not enabled then//第三次
     begin
      login_fr.free;
      form4.free ;
      Application.Run;
     end;
 end;
这里我想循环的调用直到, login_fr的密码正确才启动 main_fr这窗体
可很多时候只运行一次就进入窗体中了。

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/1539/1539001.xml?temp=7.557315E-02 搜搜 很多
      

  2.   

    哪有这么烦!做一个窗体,把这些事件写在这个窗体里就可以了!不需要写在工程文件里。
    在工程文件里只要调用就可以了!
    如:
      frmLogin := TfrmLogin.Create(nil);
      if frmLogin.ShowModal = 1 then
      begin
        Application.CreateForm(TMain_fr, Main_fr);  
        Application.Run;
      end;
      

  3.   

    wjlsmail(计算机质子) 你说的方法我试过不行啊!在sleep(500)就通不过了。sleep是什么意思?

    with Tfrmlogin.create(application) do
    begin
      {...}
    end;
    什么用的能帮我注明一下吗Dpr :Application.Initialize;
      Application.CreateForm(TfrmMain, frmMain);
      Sleep(500);
      with TfrmLogin.Create(Application) do
      begin // 校验成功返回  ModalResult := 1;否则 ModalResult := 2;
        ShowModal;
        if ModalResult = 2 then 
        begin
          Halt;
        end
        else if ModalResult = 1 then
        begin
          Close;
          Application.Run;
        end;
      end; 
    end.
      

  4.   

    工程文件
    begin
      Application.Initialize;
      Application.Title := '电脑辅助作业系统';
      Application.ShowMainForm:=false;
      Application.CreateForm(TMAIN, MAIN);
      Application.CreateForm(TLOGO, LOGO);
      Logo.Update;
      Application.CreateForm(TDBS, DBS);
      Application.CreateForm(Tpwd, pwd);
      Application.CreateForm(Tf_about, f_about);
      Application.CreateForm(TLOGIN, LOGIN);
      Login.ShowModal;
      if application.Tag=1 then Application.ShowMainForm:=true;
      Application.Run;
    end;
      

  5.   

    在login单元里,判断是否验证成功,如果成功就关闭login窗体,将application.Tag置1,否则置0
      

  6.   

    uses SysUtils / Windows
      

  7.   

    还是不行,还提示完直接进入主窗体!!!
    //drp
    Application.Initialize;
      Application.Title := '邮购管理系统';
      Application.CreateForm(TDB_Main, DB_Main);
      form4:=Tform4.Create(application);
      form4.Show;
      form4.Update;
      Application.CreateForm(TMain_fr, Main_fr);  //启动主窗体
       form4:=Tform4.Create(application);
      form4.Show;
      login_fr:=Tlogin_fr.Create(application);
      login_fr.ShowModal;
      if application.Tag=1 then Application.ShowMainForm:=true;
      Application.Run;//login_fr----------------------
    if db_main.Table_login.Locate('loginName',edit1.Text, [loCaseInsensitive])=false then
              begin
               application.MessageBox('你的账号不正确,请重新登录!!!','错误',mb_ok);
               edit1.SetFocus;
               application.Tag:=0;
               exit;
              end;