我开发了一个多文档窗体程序,然后我希望在启动程序时,主窗体mdimainfrm启动前会先弹出一个登陆窗体loginfrm,当然我希望这个loginfrm是要模态显示的,也就是说loginfrm弹出来时,只能响应loginfrm上面的所有控件,而不能再打开其它窗体.因此查了资料说一要先设为loginfrm.visible:=false;其次loginfrm.formStyle:=fsNormal(即不可是子窗体);好了,我现在这两者条件都正确设好了,现在程序启动用loginfrm.showmodal时,loginfrm也能正常模态显示了.可是,我在登陆窗体的按钮执行下列代码是,就很奇怪现象了:
   if combobox1.Text='' then
    begin
         Messagebox(0,'请选择用户名','提示',MB_OK+mb_ICONINformation);
         combobox1.SetFocus;
         exit;
    end;
   if password.Text='' then
      begin
         Messagebox(0,'输入密码','提示',MB_OK+mb_ICONINformation);
         password.SetFocus;
         exit;
      end;
如我不输用户名,执行登陆铵钮事件的如上代码,系统提示'请选择用户名'的弹出窗口提示,但我一按确定时,本该要让焦点回到combobox1,等待用户再次输入的,可我这里点了确定时,loginfrm整个窗体也消失了.如果是说因为visible:=false的话,那么模态显示又必须是visible:=false,那我那种效果怎么样可以做出来呀?总不能用非模态显示,这样人家万一不小心点到mdimain的其它地方时,登陆窗体不是被遮住了?请指教...