前言
前一章我们介绍了在实战中使用FormShow和FormActivate的用法《Delphi实战中讲解FormCreate,FormShow,FormActivate》,这一篇我们主要讲解支付成功后如何自动关闭支付界面返回数据。
先上视频
还是我们这个整个动态库做完所实战演示微信支付的视频
我们在上面的视频中可能看到,当扫码支付成功后,付款界面显示了支付成功和交易流水号后,过了大约1.5-2秒左右,付款界面就自动关闭了。
代码演示
我们还是用我们这个支付的项目
回到上章Trade.pas里面的FormActivate里面
如果按正常方式理解,我们应该都写在这个函数里面,当调用返回结果后,最后可以加上个两句代码
sleep(1500);
close;
来实现界面自动关闭。
当我们加上后运行这个程序,发现界面关没有关闭。也就是说,在FormActivate里面加上Close是不起作用的。
那我们应该用什么方式进行处理呢?其实也挺简单,我们加上一个Timer的控件,一个公共参数变量,即可实现。
界面中加上一个Timer的控件
然后在Private里面加入一个boolean的变量
然后在FormShow事件中先定义交易变量为未完成,Timer控制的间隔时间和启动。
bisTradeover := False;
Timer1.Interval := 1500;
Timer1.Enabled := True;
最后在在Timer控件的Timer1Timer写判断,当完成交易标志成功后就延时1.5秒然后关闭当前窗体。
这样我们每隔1.5秒就会自动检测是否完成交易,用来实现我们的窗体关闭。
-END-
长按下方二维码关注微卡智享