块消息/对话框

问题描述 投票:0回答:2

使用Android应用使用Java或Android Studio开发的Android应用程序,我发现消息对话框提示下一行执行,直到对话框提示。我一直在尝试使用tdialogService.messageDialog(Amessage,AdialogType,Abuttons,AdefaultButton,0,ProcedureXyz)来做到这一点。在显示提示时,执行下一行,使该提示无用,因为用户应该决定下一个操作。我需要任何人的帮助才能获得一个主动的块消息对话框提示。

delphi dialog message firemonkey
2个回答
1
投票

embarcadero文档说,在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;

您的建议@kami @kami提出了这一点,尽管对我持开放态度,但它对我来说非常有效。


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;

	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.