急!窗体怎样关闭?

bubble 2001-07-03 09:21:52
我在程序中遇到这样一个问题,我打算在主程序界面中重新调用已被注销的登陆对话框,来实现不用退出程序即可完成操作员的更换。
我的程序如下,
procedure TMainForm.N5Click(Sender: TObject);
begin
Login:=TLoginForm.Create(Application);
Login.Show;
end;

{下面是登陆对话框中的事件}
procedure TLoginForm.CancelBitBtnClick(Sender: TObject);
begin
if MessageDlg('真的想退出吗?',mtConfirmation,[MBYes,MBNo],0)=MrYes then
Login.Close;
end;
当我在主界面中调出登陆对话框后,如关闭该对话框则报错这是怎么回事。另外我定义了全局变量Login却用不了。
请各位大虾指教!
...全文
103 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengji 2001-07-03
  • 打赏
  • 举报
回复
关键是 login 窗口应该 showmodal 而不应该 show ,
如果 show 的话, 用户也肯定不习惯
bubble 2001-07-03
  • 打赏
  • 举报
回复
ChinaBlueArmy(中国蓝军)你好:
我用了你的方法,登陆对话框可以关闭,但是主窗体上的菜单全部变灰,无法使用。
tastenet 2001-07-03
  • 打赏
  • 举报
回复
小意思,首先你先从D5 (菜单) project ->options 中选择 forms 卡片,将你在程序中要动态创建的窗体选到右边,再运行就可以了,另外还有几行很关键的代码可能在你是实际的工程中要写
需要的话再写,目前你的程序应该能运行了! :->
kuangning 2001-07-03
  • 打赏
  • 举报
回复
procedure TMainForm.N5Click(Sender: TObject);
begin
Login:=TLoginForm.Create(Application);
try
Login.ShowModal ;
finally
Login.Release ;
Login := nil ;
end ;
end;
将所有的BitBtn的ModelResult:=mrnone;
disonlee 2001-07-03
  • 打赏
  • 举报
回复
你应该习惯这样的写法:
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.
ghz2000 2001-07-03
  • 打赏
  • 举报
回复
问题出在login.close
改为 login.hind;
ChinaBlueArmy 2001-07-03
  • 打赏
  • 举报
回复
你将
procedure TLoginForm.CancelBitBtnClick(Sender: TObject);
begin
if MessageDlg('真的想退出吗?',mtConfirmation,[MBYes,MBNo],0)=MrYes then
Login.Close;
end;
中的Login替换成Self试试;
yhec 2001-07-03
  • 打赏
  • 举报
回复
!
machin 2001-07-03
  • 打赏
  • 举报
回复
login.showmodal

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

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧