急!窗体怎样关闭?
我在程序中遇到这样一个问题,我打算在主程序界面中重新调用已被注销的登陆对话框,来实现不用退出程序即可完成操作员的更换。
我的程序如下,
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却用不了。
请各位大虾指教!
问题点数:30、回复次数:9Top
1 楼ChinaBlueArmy(中国蓝军)回复于 2001-07-03 09:24:51 得分 30
你将
procedure TLoginForm.CancelBitBtnClick(Sender: TObject);
begin
if MessageDlg('真的想退出吗?',mtConfirmation,[MBYes,MBNo],0)=MrYes then
Login.Close;
end;
中的Login替换成Self试试;Top
2 楼ghz2000(编程马大哈)回复于 2001-07-03 09:27:12 得分 0
问题出在login.close
改为 login.hind;Top
3 楼disonlee()回复于 2001-07-03 09:28:16 得分 0
你应该习惯这样的写法:
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.
Top
4 楼kuangning(郎之间)回复于 2001-07-03 09:33:26 得分 0
procedure TMainForm.N5Click(Sender: TObject);
begin
Login:=TLoginForm.Create(Application);
try
Login.ShowModal ;
finally
Login.Release ;
Login := nil ;
end ;
end;
将所有的BitBtn的ModelResult:=mrnone;Top
5 楼tastenet(速效揪心完)回复于 2001-07-03 11:08:31 得分 0
小意思,首先你先从D5 (菜单) project ->options 中选择 forms 卡片,将你在程序中要动态创建的窗体选到右边,再运行就可以了,另外还有几行很关键的代码可能在你是实际的工程中要写
需要的话再写,目前你的程序应该能运行了! :->Top
6 楼bubble()回复于 2001-07-03 12:38:33 得分 0
ChinaBlueArmy(中国蓝军)你好:
我用了你的方法,登陆对话框可以关闭,但是主窗体上的菜单全部变灰,无法使用。Top
7 楼zhengji(看雨飞)回复于 2001-07-03 12:53:52 得分 0
关键是 login 窗口应该 showmodal 而不应该 show ,
如果 show 的话, 用户也肯定不习惯Top
8 楼yhec(@_@ 俺是贫农俺怕谁)回复于 2001-07-03 13:06:03 得分 0
!Top
9 楼machin(刷新一下)回复于 2001-07-03 13:06:03 得分 0
login.showmodal
作为一个字窗体来显示。
你试一下。。。Top




