JavaやAndroidスタジオを使って開発されたアンドロイドアプリを使用しているとき、ダイアログプロンプトに応答するまで、メッセージダイアログプロンプトが次の行の実行を継続することがわかりました。私はTDialogService.MessageDialog(AMessage、ADialogType、AButtons、ADefaultButton、0、procedurexyz)を使ってこれを実行しようとしています。プロンプトが表示されている間、次の行が実行され、ユーザーが次の操作を決定すると思われるので、プロンプトが役に立たなくなります。アクティブなブロックメッセージダイアログプロンプトを表示するには、誰からも助けが必要です。Delphi fmx blocked messageダイアログボックス
0
A
答えて
1
あなたの提案の後に@カミ私はこれを思い付いて、それは非常にうまくいっていますが、提案や追加があります。
function MsgBox(const AMessage: string; const ADialogType: TMsgDlgType; const AButtons: TMsgDlgButtons;
const ADefaultButton: TMsgDlgBtn): Integer;
var
myAns: Integer;
IsDisplayed: Boolean;
begin
myAns := -1;
IsDisplayed := False;
While myAns = -1 do
Begin
if IsDisplayed = False then
TDialogService.MessageDialog(AMessage, ADialogType, AButtons, ADefaultButton, 0,
procedure (const AResult: TModalResult)
begin
myAns := AResult;
IsDisplayed := True;
end);
IsDisplayed := True;
Application.ProcessMessages;
End;
Result := myAns;
end;
1
Embarcadero documentation says、そのAndroidプラットフォーム上で、あなたはこのように、あなたは回避策を使用することができ、「ブロッキング」モードを取得する唯一の非ブロッキングShowMessage
のための呼び出し、MessageDialog
、myForm.ShowModal
等
を使用することができます。
function myMessageDialog(const AMessage: string; const ADialogType: TMsgDlgType;
const AButtons: TMsgDlgButtons; const ADefaultButton: TMsgDlgBtn): Integer;
var
mr: TModalResult;
begin
mr:=mrNone;
// standart call with callback anonimous method
TDialogService.MessageDialog(AMessage, ADialogType, AButtons,
ADefaultButton, 0,
procedure (const AResult: TModalResult)
begin
mr:=AResult
end);
while mr = mrNone do // wait for modal result
Application.ProcessMessages;
Result:=mr;
end;
+0
試してみましたが動作しませんでした – niglng
関連する問題
- 1. PFD_MAIN_PLANEとDelphi FMX
- 2. Delphi Visual FMXコンポーネント
- 3. delphi fmx DrawBitmap関数
- 4. Delphi Berlin FMX Comboboxの値はLiveBindings経由
- 5. Delphi FMX Android appデバイスの電話番号を取得
- 6. Delphi FMX TAnimator。 TPointFをアニメーション化する方法
- 7. FMXキャンバス上Delphiで線を描画する方法
- 8. Delphi FMX MapView - すべてのマーカーを削除
- 9. Clickonce exe blocked
- 10. Firebaseメッセージングエラー:messaging/permission-blocked
- 11. FMXプログレスバーの色
- 12. fmx delphi berlin Tgridの行のフォントの色を変更する方法
- 13. Delphi XE2 FireMonkeyレポートオプション
- 14. はデルファイFMXではC++ Builderのから
- 15. Blocked読み込み混在アクティブコンテンツエラーメッセージ
- 16. Delphi FMX - FiremonkeyのフォームのX、Y座標を取得する方法はありますか?
- 17. Delphi FMXがフォーカスを特定のコントロールに設定してカーソルが表示されるようにしました。
- 18. Delphi FMX editは不整合を制御します - 高速入力フォームを作成するには?
- 19. Delphiのバージョンが異なる1つのFMXフォームで作業することはできますか?
- 20. 変更方法、ボタンの色はFMXですか?
- 21. フィードバックパネルstylizing/change message
- 22. Missed Socket Message
- 23. Symfony3 - global flashbag message
- 24. Websphere Message Queueマルチスレッド
- 25. Python TCP Duplicate Message
- 26. アンドロイド:Messageオブジェクト
- 27. リロードIMAP-Message
- 28. Minix sys_fork()print message
- 29. jquerymobile loading messageテーマ
- 30. Websockets message loss
ブロックのダイアログでは、Androidでサポートされていません。コールバック関数を使用します。 – kami
どのバージョンのDelphiですか? FMXはバージョン間で変更され、使用しているものは関連性があります。 。 –
@kamiは、あなたがそのようなTDialogService.MessageDialog(AMessage、ADialogType、AButtons、ADefaultButton、0、//期待通り確認が表示されることを確認する匿名メソッドを使用します 手順 としてコールバックを意味しません(constがのaResult:TModalResult) を開始 ; mrNo ShowMessage( '[はい]を選択した'): {異なるメッセージを押されたボタンの検出および表示} mrYESのケースのaResult ShowMessage( 'いいえを選択した'); 端; 端) 私はそれがどのように行われたのか、Javaで達成されたのか疑問に思っているからです。 – niglng