2016-06-21 6 views
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; 
... 
+2

これは、残りのコードが* After * ShowModalの後に実行されるためです。あなたがすべきことは、その認証コードを入れることです。 FfrmLoginForm.OnShow()ハンドラに追加します。 ModalResultを成功または失敗を知らせるように設定できます。 –

答えて

3

ShowModalが返されたときにフォームが閉じられます。したがって、あなたが観察する行動。

ダイアログをモーダルフォームの上に表示するには、ShowModalが返される前に表示する必要があります。 mrOKコードをモーダルフォームのどのコードにでも移動させると、ModalResultからmrOKに設定されます。

関連する問題