问题标签 [delphi-xe5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - TStringList.AddObject 在 Android (Delphi) 上不起作用
我正在使用 RAD Studio XE-5 创建 Android 应用程序,但最近偶然发现了一个令人费解的错误。TStringList.AddObject 引发以下异常:
我的代码是这个
此代码在 32 位 Windows 目标上运行良好,但在我的 Nexus 7 上运行(在调试模式下)时引发上述异常(当我不使用 TStringList.AddObject 时运行良好)。如果我在没有调试的情况下运行应用程序,它只会在我的 Nexus 上关闭。
这是 Delphi Android 的已知问题/限制吗?是否有解决方法或推荐的方法来实现相同的结果(不仅适用于这个玩具示例,而且一般使用 AddObject)?
ios - Firemonkey iOS 共享数据
请不要将此问题标记为重复或已回答。我特别需要 Delphi 的帮助,并且没有关于代码的答案(如果我错了,请提供给我)。另请注意,我正在寻找标签中指定的 XE5 帮助。
我需要有关在 iOS 上的应用程序之间共享数据的代码方面的帮助。我已经阅读了 在两个或多个 iPhone 应用程序之间共享数据的理论。
我现在知道如何共享文件,但我找不到任何关于与 Firemonkey 共享数据的信息。我确实找到了一些关于通过 TMS 使用 Flexcell 进行文件共享的信息,但这仅与在其他文件中打开文档有关。
我特别想在应用程序之间共享类似 XML 的文档,以便应用程序可以通过 XML 通信数据(从 xml 读取和写入数据)。
有没有人能够使用 Firemonkey 3 和 XE5 成功地做到这一点?
android - Firemonkey Android Access Calendar and Events
How do I access the Calendar and Events on Android using Delphi XE5.
android - 在 iOS 和 Android 中获取手指按下的位置
我正在使用 Delphi XE5 为 Android(和 iOS)开发。
使用 Delphi XE5 中 Touch 属性中的 InteractiveGestures,我可以获得缩放、平移、旋转、TwoFingerTap、PressAndTap、LongTap 和 DoubleTap 的 GestureEvent。所有这些都带有一个 TGestureEventInfo 对象,我可以在其中获取事件的位置,例如。手指的坐标。
但是,似乎没有一个手势只是简单的点击/按下。我知道在这种情况下会触发 OnClick 事件,但 OnClick 事件没有附带 TGestureEventInfo 对象,因此我无法获取点击的位置。这似乎是一个获取信息的非常重要的事件。
我错过了什么吗?如何获取简单的点击手势的位置?
android - Delphi XE5 Android - 以 PDF 格式打印
我正在尝试使用 Android 中的 Delphi XE5 在 PDF(首选)中进行打印预览。建立了一个打印源,但它是 iOS
找到 CCR.MacPDFWriter
为了解决这个问题,我正在考虑用 Canvas 打印图像。
你怎么看?有人知道打印预览的更好方法或组件吗?
android - 使用多线程绘制位图,在 Windows 和 Android 中的结果不同
我的应用程序创建了 Mandelbrot 分形的图像。它通过计算数据行,将它们转换为一行颜色,然后将此行复制到位图来实现。首先,这是以串行方式完成的,效果很好。现在我正在尝试使用多个线程来做到这一点。每个线程计算自己的一系列行,例如线程 0 计算 0、4、8、12、...;线程 1: 1, 5, 9, ...; 线程 2: 2, 6, 10, ...,线程 3: 3, 7,...,在给出的示例中使用了 4 个线程 (FMax_Threads = 4)。临界区(声明为全局)必须防止多个线程同时写入位图。另一个全局变量(Finished_Tasks)用于跟踪写入的行数。一旦等于行数,计算就完成了。
相同的代码在 Windows 下运行良好,但在 Android 下会导致位图乱码。我之前注意到Windows 比 Android 更能容忍错误。有人知道我到底做错了什么吗?
下面的单位计算螺纹 mandelbrot
它被称为如下:
正如您可能已经猜到的那样,Image 是表单上的 TImage。
任何帮助是极大的赞赏!
更新 1 LU RD 和 David 的言论让我重新考虑算法。结果,我发现 TParallelMandelbrot.compute 函数中缺少 FBitmap.Canvas.EndScene。当我更正该应用程序在 Windows 和 Android 中都可以运行时。
起初,我通过使用 TAlphoColor 矩阵并在所有计算完成后将其复制到位图来消除一个重要的瓶颈。根据迭代次数(64 和 4096),重绘位图的速度可以节省 5/8 到 3 倍。迭代次数越多,计算越多,出现瓶颈的可能性就越小,这在图中很好地反映了这一点。另一个建议是使用 WaitFor。这提供了移除关键部分和瓶颈的可能性。与 Finished_Tasks 的更新一样,剩下的唯一语句我无法在计时结果中找到它。然而,代码得到了极大的改进。
LU RD 提到了 AlphaColorToScanline。由于我在 VCL 的日子里使用 ScanLine 获得了很好的结果,我希望能看到很好的结果。现在不是这样。除了噪音之外,我无法检测到使用扫描线之间的差异。然而更糟糕的是,在 Android 中,红色和蓝色字节被交换了。在 Windows 中,它们可以正确显示。
我发布了下面的代码,以便您自己检查。下面是一些时序结果(Windows = core i7-920 4 cores each cores with hyper thread, 2.67Ghz; Android = ARMv7, 1Ghz, 2(?) cores)
请参阅下面的 TParallelMandelbrot 中的计算。在添加的末尾标记 EndScene 语句。Windows 并不在意,但 Android 却很在意。我现在创建了未暂停的线程,我不需要再启动它们了。改进几乎不明显。
以及TCompute中的计算功能:
更新 2 最后的结论是 TBitmap不是线程安全的。请参阅此链接(它位于 Embarcadero wiki 上的某个位置,但无法重新找到它,这是我找到的唯一参考)。这就解释了为什么使用中间 colot 矩阵是一个好主意!
谢谢大家的建议!
ios - 如果我的应用程序尚未运行,如何推送通知?
假设用户还没有启动你的应用,但它之前已经运行过。有没有办法仍然“推送”新闻/更新?
解释一下我的意思:假设用户安装了“your-restaurants-in-your-area”面向本地的应用程序,并在某些设置中配置了该应用程序以在新餐厅开业时通知用户......但是,用户忘记运行这个应用程序每天。有没有办法让应用程序在 iOS 中自动显示新闻?
我为 XE4 找到了这个,Anders 正在帮助人们使用 XE4 http://blogs.embarcadero.com/ao/2013/05/02/39456
http://blogs.embarcadero.com/ao/2013/05/24/39472
经过进一步搜索(我错过了第一轮),我发现了这个:
http://edn.embarcadero.com/article/43239
它需要编辑 Delphi XE4 捆绑的源文件(即它在 XE4 中不受官方支持/简化),但它似乎可以工作。(我没有在 XE5 中找到任何官方提到的官方“内置”支持。)
我赞成到目前为止给出的答案,因为它在某种程度上很有帮助。
android - FireMonkey TControl.MakeScreenshot 在移动平台上生成尺寸过小的位图
我正在尝试从 TLayout 控件生成位图。为此,我使用了 TControl.Makescreenshot 函数。在 Windows 上测试应用程序时,一切都按预期工作:
但是,在 iOS、Android(模拟器和真实设备)上运行应用程序时,结果如下所示(图像周围的红色边框正好绘制在位图边框内):
在移动版本中,图像是一半大小,并且边框被裁剪。
这是我使用的代码:
(.pas)
(.fmx)
问题与像素密度有关还是 FireMonkey 错误?
ios - iOS 使用 Delphi 通过钥匙串共享数据
所以肯定可以通过 KeyChain 共享数据。我现在的问题是使用 Delphi 用 Firemonkey 实现这个。首先,是否有合适的库或 API 与 Firemonkey 一起使用来共享密钥?其次,是否有通过 Delphi 执行此操作的示例代码?
java - 如何用delphi xe5扩展android类
我试图从“Androidapi.JNI.App.pas”(TJservice)扩展一个类/接口,我需要扩展这个类来提供服务。可能吗?如何?
我需要覆盖这样的方法:oncreate、onbind、ondestroy。但我不知道怎么做。
我试过这样的事情:
出现此错误: