百分求解=====如何快速有效的关闭程序?(100分)

  • 主题发起人 主题发起人 doom2
  • 开始时间 开始时间
D

doom2

Unregistered / Unconfirmed
GUEST, unregistred user!
比如有两个form,form_login 和 form_main,在login的时候,如何退出可以不让main出现
 
在项目文件里写代码。
类似如下:
var
LoginForm:TForm2;

begin
LoginForm:=TForm2.Create(Application);
LoginForm.ShowModal;
if LoginForm.ModalResult=mrok then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.
 
begin
LoginForm:=TForm2.Create(Application);
LoginForm.ShowModal;
if LoginForm.ModalResult=mrok then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
loginform.free;
loginform:=nil;
Application.Run;
end;
end.

选择“project"->"option"然后把loginform移到右边的窗口。
 
在Login_Form退出按钮的Click事件中Halt
 
VOID ExitProcess(
UINT uExitCode // exit code for all threads
);
or
BOOL TerminateProcess(
HANDLE hProcess, // handle to the process
UINT uExitCode // exit code for the process
);
 
to wolfsong & HLHGOD 我试了一下,似乎不管按什么,form_login.modalresult返回值
都是2阿~

这是为什么阿。
 
这是因为你按了窗口右上角的按钮关闭的,表示取消。
其实ModalResult 值表示你是按了哪个按钮退出的。
你可以在登录窗口中放两个按钮,一个“确定”、一个“取消”。
将“确定”按钮的 ModalResult 设置为 mrOk ( 1 )
将“取消”按钮的 ModalResult 设置为 mrCancal ( 2 )

这样退出窗口后,就知道是怎么退了的?
 
改为这样更简洁
var
LoginForm:TForm2;

begin
LoginForm:=TForm2.Create(Application);
if LoginForm.ShowModal=mrok then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.
 
大侠们似乎只关心了进入的状况,那我要是cancle呢,我试了几种方法,都报错~~
什么access violent~~~
 
大哥们帮看看这么写行吗,似乎cancle就报错~是不是因为我把initialize放在前面的
缘故阿,可是似乎没init是不能create form的~
begin
Application.Initialize;
frm_login:=tfrm_login.Create(application);
frm_login.showmodal;
if frm_login.ModalResult=1 then
begin
Application.Title := 'IC E-Biz Solution';
Application.CreateForm(Tfrm_main, frm_main);
Application.CreateForm(Tfrm_event_view, frm_event_view);
Application.Run;
end
else
begin
frm_login.free;
frm_login:=nil;
end;
 
谢谢各位,问题解决了,原来少写了一个application.run~~
sigh~
 
多人接受答案了。
 
后退
顶部