问题标签 [delphi-xe8]

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.

0 投票
1 回答
8568 浏览

delphi - Unicode 字符串上的 Length() 与 Sizeof()

引用 Delphi XE8 帮助:

对于单字节和多字节字符串,Length 返回字符串使用的字节数。UTF-8 示例:

对于 Unicode (WideString) 字符串,Length 返回字节数除以 2。

这就产生了重要的问题:

  1. 为什么在处理上存在差异?
  2. 为什么 Length() 没有做它预期的事情,只返回参数的长度(如元素的数量)而不是在某些情况下以字节为单位给出大小?
  3. 为什么它声明它将结果除以 2 用于 Unicode (UTF-16) 字符串?AFAIK UTF-16 最多为 4 字节,因此这将给出不正确的结果。
0 投票
0 回答
176 浏览

delphi - ZCompress 导致访问冲突 Delphi Xe8

在uses子句中使用ZLib库的 ZCompress();函数System.Sensors, System.Sensors.Components会导致此行的访问冲突

我该如何解决,或者有解决方法吗?iOS FMX 德尔福 Xe8

0 投票
2 回答
220 浏览

ios - 在 iOS 中横向打开项目在 Delphi XE8 中无法正确显示

当我在 iOS 中横向打开我的项目时,表单似乎向右旋转了 90 度,并且也不适合屏幕。

当我以纵向打开它时,我没有遇到任何问题。此外,当我将其转为横向时,它会正确显示。

有人对此有解决方案吗?

更新: 我已经下载了 XCode 5.1.1,所以我可以编译 iOS 7.1 这解决了旋转问题,但现在它并没有填满整个屏幕。

0 投票
1 回答
527 浏览

database - 如何在 Firemonkey Delphi XE8 的 TListbox 中不加载所有数据库记录

我在 Delphi Xe8 中有一个多设备项目。我有一个与数据库记录一起加载的 TListBox 组件。

问题是有时列表可能非常大,因此加载需要很长时间。所以我想部分加载它,当我向下滚动时加载新记录。我怎么做?

现在我使用 TFDQuery 加载表的每条记录。

更新: 经过一段时间后,我意识到问题不在于从数据库中加载所有记录,而在于在 TListBox 中创建所有 TListBoxItems。所以我仍然想做几乎相同的事情,但现在加载所有数据库记录,但不为所有记录创建 TListBoxItems。

0 投票
1 回答
461 浏览

delphi - Delphi XE8 - 使用 VCL 应用程序从 Parse 发送通知

我正在用 XE8 学习新的 Baas 技术。

我创建了一个小应用程序来使用 Parse 在 Android 手机上接收通知。从 Parse 网站发送通知消息时,一切正常。

但是,当我的 VCL 应用程序使用 BackendPush 组件发送通知时,手机中没有任何内容。

消息发送正确,因为我可以在 Parse 站点上看到它们。它们的状态不同于从 Parse 发送的状态。

这是我在 Parse 上的 VCL 消息状态:

在 Parse 网站上发送时:

我应该怎么做才能让我的 VCL 消息到达手机。

我的代码:

0 投票
1 回答
1340 浏览

android - 将 apk 从 XE7 更新到 XE8 时出现签名证书错误

我的 Android apk 是由 XE7 开发的。现在我用 XE8 升级项目。安装 apk 到 Android 设备时 IDE 报告签名证书错误:

无法创建进程:无法安装 D:\GMTWork\SalesApp\Android\Release\SalesApp\bin\SalesApp.apk。失败 [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]

Embarcadero 的解决方案是:

  1. 从您的 Android 设备手动卸载之前安装的应用程序。
  2. 将 RAD Studio 配置为在每次运行应用程序时执行全新安装。

我认为这些都不是好的解决方案。因为我的apk已经安装在很多手机上,所以我不能要求用户手动卸载或进行全新安装。

那么,谁有更好的解决方案呢?或者我的 apk 可以使用相同的签名证书吗?

0 投票
1 回答
434 浏览

delphi - 在非 Windows 平台上刷新文件缓冲区

我有一个日志组件,它使用 TByteStream 来存储日志内容,并使用 TFileStream 定期将它们写入磁盘。我需要确保在写入文件流后立即更新文件。到目前为止,我只知道 FlushFileBuffers(),这是一个 Windows 特定的函数。在其他 XE8 平台支持的平台上怎么做?

0 投票
1 回答
827 浏览

delphi - 无法在字符串中使用撇号

所以我只花了一个小时试图让它工作。我正在对 TWebBrowser 进行一些测试,因此我可以将我的发现应用到一个项目中。我想测试将内容加载到其中的不同方式(URL、LoadFromStrings() 和 EvaluateJavaScript())。问题是,无论如何我都不能将一个简单的字符串传递给最后一个方法,而不会错误地陷入撇号中。

看到#39了吗?如果没有它们,则发送的字符串根本不带撇号,因此生成的 JavaScript 脚本无效。如果它们仍然存在,我会在字符串的每一端得到两个撇号,仍然会弄乱脚本。这是什么?

0 投票
2 回答
284 浏览

android - 如何修改函数使其返回字符串数组

你能帮我用这个功能吗

我需要该函数GetDeviceRegeistrationID返回一个注册 id 数组,所以我可以修改 Push 方法。

0 投票
1 回答
333 浏览

delphi - Infinite loop in parsing a string using pointer math

I have a routine that processes a C-like string, resulting in usual Delphi string:

The problem is the loop never exits. Debugging shows the line while P<>nil do doesn't evaluate to False because P is '' at the end of processing, so the code tries to perform out-of-range operations on it. Since I didn't find any concise documentation on pointer math in Delphi, it's quite possible I'm at fault here.

EDIT: I've rewritten the function with everything read in mind like that:

I check for #0 in the inner case statement for "such \ strings" being fed into the routine, i. e. a sequence of strings broken into pieces read from a source and then formatted one by one. So far this works great, however it fails to correctly parse '\\t' as '\t' and similar constructs, it returns just #9. I can't really think of any cause. Oh, and the old version also had this bug BTW.