从Firemonkey Multi Device Delphi项目中的函数获取modalresult

时间:2016-11-30 08:57:42

标签: android ios delphi firemonkey delphi-10-seattle

我在Rad Studio 10 Seattle有一个Firemonkey Multi Device(Android& iOS)项目。 我想从一个单元中的方法调用一个带有showmodal的表单,并使用该函数返回modalresult。

我已尝试过以下示例:

function ShowMyForm: TModalResult;
var
  form: TForm1;
begin
  form:= TForm1.Create(nil);
  form.ShowModal(
    procedure(ModalResult: TModalResult)
    begin
      result := ModalResult;
    end);
end;

function ShowMyForm: TModalResult;
var
  form: TForm1;
begin
  form:= TForm1.Create(nil);
  result := form.ShowModal;
end;

使用内联程序,该功能无法访问结果。

只是调用TForm.ShowModal并不适用于多设备项目。

还有其他方法可以实现这一目标吗?

1 个答案:

答案 0 :(得分:2)

我通过添加一个在modalresult等于mrOk时调用的内联过程来解决我的问题。

以下代码:

使用showmodal显示我的表单的方法

procedure ShowMyForm(event: TProc = nil);
var
  form: TForm1;
begin
  form:= TForm1.Create(nil);
  form.ShowModal(
    procedure(ModalResult: TModalResult)
    begin
      if (ModalResult = mrOk) and Assigned(event) then
        event;  
    end);
end;

使用内联程序调用该过程。

ShowMyForm(
      procedure
      begin
          // Code that you want to do on mrOk
      end);