procedure Tfrm_login.BitBtn1Click(Sender: TObject);
begin
    if xm.ItemIndex <0 then
  begin
    messagebox(Handle,'请选择一个正确的用户名!','系统提示',MB_OK+MB_ICONINFORMATION);
    Exit;
  end;  if dm.at1.Locate('u_name',xm.Text,[loCaseInsensitive]) then
 begin
   if mima.Text=trim(dm.at1.fieldbyname('u_password').AsString)  then
   begin
     frm_main.AdminII:=dm.AT1.fieldbyname('u_id').AsString;
     frm_main.AdminName:=dm.AT1.fieldbyname('u_name').AsString;
     if dm.at1.fieldbyname('u_name').asstring='书记' then
       begin
       Frm_Main.N3.Visible:=true ;
       end  else
       begin
        frm_main.N3.Visible:=false;
        end;
     close;   end else // 密码不正确
    begin
     //application.MessageBox('密码错误,请重新输入','提示',mb_ok+mb_iconerror);
     //showmessage('密码错误,请重新输入!');
     if messagedlg('您输入的密码不正确,请检查!',mtinformation,[mbok,mbcancel],0)=mrok then
      begin
     mima.Text:='';
     mima.SetFocus;
     exit;
     end else
        close;
    end;
 end;
end;
登录代码如上: 
  

解决方案 »

  1.   

    你登录窗口显示是不是用的frm_login.showmodal啊
    如果是,只要登录窗口关闭,就会进入主界面,不论密码是否正确
      

  2.   

    主界面调用的frm_login.showmodal后
    要判断成功与否标准
    不成功则 {主form.}close
      

  3.   

    主界面调用的frm_login.showmodal后
    要判断成功与否标准
    不成功则 {主form.}close
      

  4.   

    关闭应用程序
    application.Terminate;
      

  5.   

    无论你的loginform是怎么显示的(showmodal或者先于主窗体前创建显示),也无论你的密码输入是否正确,如果不在密码不正确时结束application or MainForm,程序都会继续运行,所以你就看到进入Mdi主窗体了。在你判断密码不正确后,你可以两种方式来关闭程序
    1,如果MainForm创建了,你可以MainForm.close
    2,无论何时,你都可以用application.Terminate来关闭程序
      

  6.   

    因为你的主窗口是Main,所以不管密码对不对,都会进入主窗体的
      

  7.   

    直接用这个  application.Terminate