gpt4 book ai didi

android - 在Delphi XE7 Android中的Messagedlg

转载 作者:行者123 更新时间:2023-12-03 18:45:36 26 4
gpt4 key购买 nike

我只是想执行在Android平台上安装Delphi xe7(MessageAlerts)期间给出的示例,不幸的是它无法正常工作,它给出以下错误消息:


该平台未实现的阻止对话框


procedure TMessageAlertsForm.btnMultiButtonAlertClick(Sender: TObject);
begin
{ Show a multiple-button alert that triggers different code blocks according to
your input }
case MessageDlg('Choose a button:', System.UITypes.TMsgDlgType.mtInformation,
[
System.UITypes.TMsgDlgBtn.mbYes,
System.UITypes.TMsgDlgBtn.mbNo,
System.UITypes.TMsgDlgBtn.mbCancel
], 0) of
{ Detect which button was pushed and show a different message }
mrYES:
ShowMessage('You chose Yes');
mrNo:
ShowMessage('You chose No');
mrCancel:
ShowMessage('You chose Cancel');
end;
end;


知道如何解决吗?

最佳答案

XE7发行说明中对此进行了解释:

Dialog Box Methods Support Anonymous Methods to Handle Their Closing


在XE6中,对对话框方法(InputBox,InputQuery,MessageDlg,ShowMessage)的调用始终处于阻塞状态。在对话框关闭之前,不会调用这些方法之一。 Android不允许阻止对话框,因此您不能在Android上使用这些方法。

在XE7上,InputBox,InputQuery和MessageDlg支持新的可选参数ACloseDialogProc。包含此新参数的调用可在包括Android在内的所有平台上运行。这个新的可选参数允许您提供一个匿名方法,该方法在对话框关闭时被调用。当使用此新参数调用这些方法时,您的调用在台式机平台中处于阻塞状态,而在移动平台中处于非阻塞状态。如果您需要在对话框关闭后执行代码,请使用此新参数来确保您的应用程序在所有受支持的平台上都能正常运行。

...

ShowMessage还获得了XE7中对Android的支持,对ShowMessage的调用在台式机平台上处于阻塞状态,而在移动平台上处于非阻塞状态。但是,ShowMessage不提供任何新参数来处理其关闭。如果需要在ShowMessage显示对话框关闭后执行代码,请使用MessageDlg而不是ShowMessage。


例如:

procedure TMessageAlertsForm.btnMultiButtonAlertClick(Sender: TObject);
begin
MessageDlg('Choose a button:', System.UITypes.TMsgDlgType.mtInformation,
[
System.UITypes.TMsgDlgBtn.mbYes,
System.UITypes.TMsgDlgBtn.mbNo,
System.UITypes.TMsgDlgBtn.mbCancel
], 0,
procedure(const AResult: System.UITypes.TModalResult)
begin
case AResult of
mrYES:
ShowMessage('You chose Yes');
mrNo:
ShowMessage('You chose No');
mrCancel:
ShowMessage('You chose Cancel');
end;
end);
end;
end;

关于android - 在Delphi XE7 Android中的Messagedlg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34389997/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com