你将
procedure TLoginForm.CancelBitBtnClick(Sender: TObject);
begin
if MessageDlg('真的想退出吗?',mtConfirmation,[MBYes,MBNo],0)=MrYes then
    Login.Close;
end;
中的Login替换成Self试试;

解决方案 »

  1.   

    问题出在login.close
    改为 login.hind;
      

  2.   

    你应该习惯这样的写法:
    procedure TMainForm.N5Click(Sender: TObject);
    begin
    Login:=TLoginForm.Create(Application);
    if Login.ShowModal = mrOk then
      ...
    else
      ...Login.Free;
    end;至于过程 TLoginForm.CancelBitBtnClick 基本不用写什么东西,只要将CancelBitBtn的ModelResult属性改为mrCancel,而将OkBitBtn的ModelResult属性改为mrOk.
      

  3.   

    procedure TMainForm.N5Click(Sender: TObject);
    begin
       Login:=TLoginForm.Create(Application);
       try
          Login.ShowModal ;
       finally
          Login.Release ;
          Login := nil ;
      end ;
    end;
    将所有的BitBtn的ModelResult:=mrnone;
      

  4.   

    小意思,首先你先从D5 (菜单) project ->options 中选择 forms 卡片,将你在程序中要动态创建的窗体选到右边,再运行就可以了,另外还有几行很关键的代码可能在你是实际的工程中要写
    需要的话再写,目前你的程序应该能运行了!  :->
      

  5.   

    ChinaBlueArmy(中国蓝军)你好:
    我用了你的方法,登陆对话框可以关闭,但是主窗体上的菜单全部变灰,无法使用。
      

  6.   

     关键是  login 窗口应该 showmodal 而不应该 show ,
      如果 show  的话, 用户也肯定不习惯
      

  7.   

    login.showmodal作为一个字窗体来显示。
    你试一下