【发布时间】:2016-06-21 09:12:43
【问题描述】:
使用下面的代码,当我调用MessageDlg 时,模态表单消失了。
如何避免?
...
LoginForm_Create; //FfrmLoginForm created here
try
if FfrmLoginForm.ShowModal = mrOk then
begin
Fuser := db_authuser( FfrmLoginForm.edtUserName.Text, FfrmLoginForm.edtPassword.text );
if Fuser <> nil then
result := 1
else begin
MessageDlg('Username or password invalid', mtError, [mbOK], 0);
result := -2;
end;
end else //mrCancel
result := -1;
finally
LoginForm_Close; // << FfrmLoginForm.Release;
end;
...
【问题讨论】:
-
那是因为你的其余代码是在 ShowModal 之后执行的。您应该做的是输入该身份验证代码,例如在您的 FfrmLoginForm.OnShow() 处理程序中。然后你可以设置 ModalResult 来表示成功或失败。
标签: forms delphi dialog modal-dialog