为Android做一个ShowModal窗口

为Android做一个ShowModal窗口,第1张

概述大家知道,用Delphi实现一个Form,并用ShowModal显示出来,是非阻塞的,如果我们需要类似阻塞的效果,该如何实现呢?1.先建一个Form,跟通常的情况一样。2.为Form实现具体的内容,这按你的需要了。3.在窗口的单元中实现一个方法,用来显示这个窗口:implementation{$R*.fmx}//调用方法://

大家知道,用Delphi实现一个Form,并用ShowModal显示出来,是非阻塞的,如果我们需要类似阻塞的效果,该如何实现呢?

1.先建一个Form,跟通常的情况一样。

2.为Form实现具体的内容,这按你的需要了。

3.在窗口的单元中实现一个方法,用来显示这个窗口:

implementation{$R *.fmx}//调用方法://   ShowPrivacyForm(//    procedure(AResult: TModalResult)//    begin////    end);var  PrivacyForm: TPrivacyForm;//声明一个私有变量procedure ShowPrivacyForm(AFormResult: TProc<TModalResult>);begin  if not assigned(PrivacyForm) then  begin    PrivacyForm := TPrivacyForm.Create(Application);  end;  PrivacyForm.ShowModal(    procedure(AResult: TModalResult)    begin      AFormResult(AResult);//这里执行回调      TTask.Run(                procedure                begin                  TThread.Synchronize(nil,                    procedure                    begin                      PrivacyForm.dispoSEOf;//释放这个窗口                      PrivacyForm := nil;                    end);                end);    end);end;

4.显示这个窗口,首先引用Form所在的单元,然后调用显示窗口的方法ShowPrivacyForm:

        ShowPrivacyForm(                        procedure(AResult: TModalResult)                        begin                           if AResult=mrCancel then                           begin                               Close;                           end                           else                           begin                               //用户点击了确定接钮                            end;                        end);

5.细节处理,接管AndroID手机的返回键,当用户按返回键,相当于点击取消 *** 作:

procedure TPrivacyForm.FormKeyUp(Sender: TObject; var Key: Word;    var KeyChar: Char; Shift: TShiftState);begin  if Key = vkHarDWareBack then       self.ModalResult := mrCancel;end;

好了,一个完美的ShowModal窗口实现了!

核心代码引用专家的ChinaCock组件包中的Demo,这里表示感谢!

Delphi 10.4.2测试通过。

 

总结

以上是内存溢出为你收集整理的为Android做一个ShowModal窗口全部内容,希望文章能够帮你解决为Android做一个ShowModal窗口所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1086467.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存