Hyp*_*peZ 5 delphi firemonkey delphi-10.1-berlin
我正在使用TDialogServiceAsync.InputQuery()单个输入进行简单的调用.它只是忽略了Cancel按钮和窗口的X关闭按钮.
但Ok按钮工作正常.
这是我的代码:
uses
FMX.DialogService.Async;
procedure TForm1.Button1Click(Sender: TObject);
begin
TDialogServiceAsync.InputQuery('Title',
['Insert value'], ['bla bla'],
procedure(const AResult: TModalResult; const AValues: array of string)
begin
if Aresult = mrOk then
ShowMessage('Ok!');
if Aresult = mrCancel then
ShowMessage('Cancel!'); // this is never called
end);
end;
Run Code Online (Sandbox Code Playgroud)
如果我按下Cancel,则InputQuery窗口不会关闭,并且不会调用我的回调过程.
按下Cancel按钮后如何关闭InputQuery表单?
我正在使用RADStudio 10.1柏林.
编辑:
我做了几个测试:
这是一个已知的错误.在Embarcadero的质量门户中已经有关于此问题的错误报告:
RSP-16148 TDialogService.InputQuery() - 取消按钮不起作用
RSP-16670 TDialogService.InputQuery对话框问题.
后一张票提供了一个修复FMX.DialogHelper.pas:
打开
Run Code Online (Sandbox Code Playgroud)FMX.DialogHelper.pas找
Run Code Online (Sandbox Code Playgroud)class function TDialogBuilder.InputQuery(const ACaption: string; const APrompts: array of string;找
Run Code Online (Sandbox Code Playgroud)Button := CreateButton(LForm, BorderSize, WorkArea, Layout, SMsgDlgCancel, mrCancel, LForm.ButtonOnClick);在这一行之后,添加
Run Code Online (Sandbox Code Playgroud)//fix or add by flyign wang. Button.Cancel := True; LForm.FCanCancel := True;
| 归档时间: |
|
| 查看次数: |
1115 次 |
| 最近记录: |