1
随着代码波纹管,当我呼叫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来指示成功或失败。 –