[教程]如果在 Delphi 中将一个Java传回的父接口转换成支持的子接口类型

好吧,我原本以为可以直接 as 实现,但现实告诉我想多了,所以这块我们需要额外的处理,基本的逻辑步骤是: 引用 Androidapi.JNI.JavaTypes 单元,以便我们引用 TJLang_Class。 使用 TJlang_Class.JavaClass.forName  获取子类的 Java 原生类型信息。 使

[QSDK]使用微信SDK在手机中实现微信支付

QSDK 的微信支付的移动支付版本已经搞定,目前实测工作正常。 关于开通微信支付相关的东西,咱们先不讨论,大家按微信支付的要求就可以了。 先说共同的部分,在代码中调用微信支付的步骤: 一、引用单元 QSDK 中微信相关功能的接口实现单元是 qsdk.wechat.pas,而对应于 Android 和 iOS 版本的具体

[FMX] 在Android/iOS 应用中判断上网的网络类型

因为2G网络实在是慢,所以在我们的App中,如果用户使用 2G 网络,App 的反应可能会比较缓慢,所以,我们希望判断一下网络的类型,以便做一些策略处理。 下面提供的函数是我根据搜索到的资料编写的一个函数,注意 Delphi 自带的 iOSApi.CoreTelephony 单元中,CTTelphonyNetworkI

[FMX]从摄像头获取照片并转换为特定的格式

首先,我们要使用 TTakePhotoFromCamera 这个 Action 来获取一幅照片,在其 OnDidFinishTaking 事件中,可以得到一个 TBitmap 的图片。这块我们跳过代码。 然后,我们要将这个位图保存为我们希望的格式,如JPEG。默认调用它的 SaveToStream 它会保存为 PNG

[FMX] FMX.Graphics.Android 中对 GIF 判断的问题的修正

关于这个 Bug 的详情,大家可以参考:https://quality.embarcadero.com/browse/RSP-12424 Berlin 中的 FMX.Graphics.Android 实现的原始代码如下:

存在的问题: 第一个判定不完善,

[杂谈] 使用 Delphi 在 Vivo Y51A 手机上 Delphi 应用故障的一处问题的简单研究

这个问题,实际上北京老猫在它的 FireMonkey 移动开发中已经给出了一个解决方案,要求修改 FMX.Canvas.GPU,因为实际遇到了这个情况,所以我就特意跟踪了下,我觉得真正的问题应该是出在 Vivo,或者是高通提供的驱动上的问题。FMX.Canvas.GPU 实际上低层调用的是 FMX.Context.GL

[FMX] 将颜色字符串值转换为 TAlphaColor

Delphi 自带一个 StringToAlphaColor ,我重新实现了一个自己的版本,定义为 ParseColor,区别就不说了,自己看。

 

[FMX] FMX.MultiResBitmap 的一处改进

红鱼儿在其博客中发表的一篇文章中引述了官方QC中的一处缺陷报告,谈到了 TCustomMultiResBitmap.ItemByScale 的效率问题,并提供了一个优化。不过我觉得它的优化有点太偷懒了,而且一旦不匹配,效率还不如原来的实现。所以我简单审视了下 ItemByScale 的代码,实际上它的效率问题在于过度优

[FMX] 为你的移动应用加入在线更新支持

程序永远与 Bug 相伴,即使不是因为 Bug,我们的程序也可能因为增加或调整功能等原因,需要进行升级。那么在移动应用中,实际上还是蛮简单的。 第一关:在服务器端为升级准备必要的文件 版本检查文件:应用需要下载此文件与本地的文件进行比较以确定是否需要更新,为了方便我们可以用 Json 格式来定义更新的应用的信息,比如:

[FMX] 在应用中检测是否已经联网

好吧,我这人实在是懒,不想装组件,而且也不关心太复杂的功能,就是想让用户在使用软件之前,检查下网络是否连接了,所以查找资料写了一个函数。 首先加一个简单的说明: 联网只代表联网,并不代表你一定能够访问指定的网址。比如你虽然连接了 Wifi,但无线路由器却没有连接到 Internet,函数会返回已经联网,但是你实际上还是

[SDK] QSDK 项目放到了 GitHub

该项目的目的只是将知名应用的开放 SDK 翻译成 Delphi 的版本(如果未提供)。基于官方相应平台的版本修改,如果官方不支持相应的平台,也就不会有相应的SDK。欢迎大家积极参与,一起补充 SDK 的内容。 Ticr(Tu2/tht2009) 提供的 Objective-C IDE 扩展: 使用说明 GitHub 源

[杂谈] Android 下预编译的 OpenSSL 库(1.0.2g)

这个是一位德国的朋友 hmm.fanz 分享给我的,经过其同意分享给大家。大家将其随自己的 android 程序一起发布就可以了,具体的发布过程就不在这里说了,大家可以参考以前的文章。 下载 感谢 hmm.fanz,这样子通过 QSendMail 发送邮件时,大家在 Android 下就可以使用 SendBySSL 了

[FMX] 计算文本所占用的显示区域大小

我们有时需要手动计算文本内容显示所需要占用的区域大小,在 VCL 中相信大家都很熟悉怎么做了。但在 FMX 中如何去跨平台的实现它,这就需要研究研究了,毕竟连 FMX 自带的 TLabel 的 AutoSize 设置为 true 都没产生任何效果。 好吧,首先看看我们要包含的单元: FMX.TextLayout :我们

[QWorker] 更新:修正了信号作业清理的一处问题,并更改了信号容器

【问题描述】 1、信号作业清理原来使用的哈希表忘记考虑哈希桶位置重复,造成未正确清理掉。 2、信号作业的容器由哈希表改为普通的数组,以提升效率(此业务场景更适合用普通的数组)。 【严重程度】 高 【更新级别】 推荐 【特别感谢】 MLSkin

[FMX]OpenUrl 的跨平台实现

OpenUrl 是 iOS 中 UIApplication 提供的一个函数,用于调用其它程序。实际上各个平台都有自己的实现,这里提供一个直接封装完的跨平台版本给大家。

比如我们在某个平台(Windows、OSX、Android 和 iOS 之一)调用默认

[FMX] 获取应用程序所在的根目录及文件名

这个函数适用于 iOS、Android、Windows、OSX,但仅适用于 Delphi/C++ Builder,对别的语言没多大的参考价值。当然,也不能说真的没有,有兴趣的可以朋友可以参考 Delphi 中的 System.pas 单元的源码,然后再加以改造并参考本部分的代码一样可以实现跨平台的获取应用程序根目录及文

[FMX] 在应用切换到后台时保存当前状态

在移动应用开发中,一个程序被切到后台,有的时候,我们需要保存下状态,然后以便在程序被操作系统在后台中止时,再次启动能够恢复原来的状态(比如 iOS 中,你的程序被切后台后,很可能由于某些原因(如内存不足)被操作系统中止)。要实现这个效果,您可以: 1、在主窗体的 OnCreate 事件中,检查 SaveState 的