kkk321:
在主Form的active 中处理LoginForm 注意Loginform 的返回值;
例:
设置 LoginForm 的private 变量LoginSuccess:boolean;并在Loginform 的create事件中预为为false;
Button:验证密码成功则LoginSuccess:=true;
// 验证密码
if {验证密码成功} Then
button1.ModalResult:=mrok;
mainform的active事件:
var loginform:tloginform;
Begin
loginform:=tloginform.create(application);
try
with loginform do
if showmodal=mrok then
Exit
Else
Begin
showmessage('you want to show message');
halt;
End;
finally
loginform.free;
End;
End;
loginok:boolean;
loginok:=false;
while not loginok or logintimes<=3 begin
myloginform:=nil;
try
myloginform:=tmyloginform.create(nil);
myloginform.hide;
myloginform.showmodal;
//然后在MYLOGINFORM中设置这个全局变量login,当然你用类的变量也可以。
Finally
myloginform.free;
end;
end;
//总之程序不是很对,看明白逻辑就行啦。
然后
if loginok then
Application.CreateForm(Tmainform, mainform)
Application.Run;
end;
//否则,自然是TERMINATE啦。
end else application.Terminate;
用异常操作!
try
Edit3.Text:=FloatToStr(StrToFloat(Edit1.Text)/StrToFloat(Edit2.Text));
except
on EZeroDivide do
begin
ShowMessage('被除数不能为零!');
Edit2.SetFocus;
end
end;