1
Mit dem Code unten, wenn ich MessageDlg
aufrufen, verschwindet die modale Form.
Wie zu vermeiden?ShowMessage auf einem modalen Formular
...
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;
...
Das ist, weil der Rest Ihres Codes * nach * ShowModal ausgeführt wird. Was Sie tun sollten, ist diesen Authentifizierungscode z.B. in Ihrem FfrmLoginForm.OnShow() - Handler. Sie können ModalResult dann setzen, um Erfolg oder Misserfolg zu signalisieren. –