急!窗体怎样关闭?
我在程序中遇到这样一个问题,我打算在主程序界面中重新调用已被注销的登陆对话框,来实现不用退出程序即可完成操作员的更换。
我的程序如下,
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却用不了。
请各位大虾指教!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
!
login.showmodal
作为一个字窗体来显示。
你试一下。。。
你将
procedure TLoginForm.CancelBitBtnClick(Sender: TObject);
begin
if MessageDlg('真的想退出吗?',mtConfirmation,[MBYes,MBNo],0)=MrYes then
Login.Close;
end;
中的Login替换成Self试试;
问题出在login.close
改为 login.hind;
你应该习惯这样的写法:
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.
procedure TMainForm.N5Click(Sender: TObject);
begin
Login:=TLoginForm.Create(Application);
try
Login.ShowModal ;
finally
Login.Release ;
Login := nil ;
end ;
end;
将所有的BitBtn的ModelResult:=mrnone;
小意思,首先你先从D5 (菜单) project ->options 中选择 forms 卡片,将你在程序中要动态创建的窗体选到右边,再运行就可以了,另外还有几行很关键的代码可能在你是实际的工程中要写
需要的话再写,目前你的程序应该能运行了! :->
ChinaBlueArmy(中国蓝军)你好:
我用了你的方法,登陆对话框可以关闭,但是主窗体上的菜单全部变灰,无法使用。
关键是 login 窗口应该 showmodal 而不应该 show ,
如果 show 的话, 用户也肯定不习惯