用模式窗体做,显示主窗体的代码应写在用户登录窗体上的“登录”按钮。 if 登录成功 then begin 用户登录窗体.free; 主窗体.create(self); end else application.terminate;
在主窗体的create事件里动态创建登陆窗体,给个例子,随手写的,可能有误 在主窗体的create事件 var FMLogin:TfrmLogin;//登陆窗体,不要autocreate begin FMLogin.showmodal();//这里先挂起过程 if LoginOK then//LoginOK是个全局变量,初始为false,在登陆窗体进行验证成功后负值true ....//代码 else begin Close;//退出 Exit; end;end;
我没有具体的代码,给你大体写写意思: 可以利用“登陆”按钮的ModalResult 登陆窗体FormLogin不自动创建 在“登陆”按钮的click事件里面写 if 用户名密码正确 then ModalResult=mrOK; 然后在主窗口的Oncreate事件中: FormLogin := TFormLogin.Create(self); FormLogin.ShowModal; if FormLogin.ModalResult <> mrOK then Application.Terminate; 这样就行,具体你自己试验一下吧。
if 登录成功 then begin
用户登录窗体.free;
主窗体.create(self);
end
else
application.terminate;
在主窗体的create事件
var
FMLogin:TfrmLogin;//登陆窗体,不要autocreate
begin
FMLogin.showmodal();//这里先挂起过程
if LoginOK then//LoginOK是个全局变量,初始为false,在登陆窗体进行验证成功后负值true
....//代码
else begin
Close;//退出
Exit;
end;end;
可以利用“登陆”按钮的ModalResult
登陆窗体FormLogin不自动创建
在“登陆”按钮的click事件里面写
if 用户名密码正确
then ModalResult=mrOK;
然后在主窗口的Oncreate事件中:
FormLogin := TFormLogin.Create(self);
FormLogin.ShowModal;
if FormLogin.ModalResult <> mrOK then
Application.Terminate;
这样就行,具体你自己试验一下吧。