在模态表单上显示消息

时间:2016-06-21 09:12:44

标签: forms delphi dialog modal-dialog

使用下面的代码,当我调用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;
...

1 个答案:

答案 0 :(得分:3)

ShowModal返回时表单已关闭。因此,你观察到的行为。

如果您希望对话框显示在模态表单之上,则需要在ShowModal返回之前显示它。通过将mrOK代码移动到模式表单上的任何代码设置ModalResultmrOK来执行此操作。