问题标签 [delphi-xe7]

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 回答
1481 浏览

delphi - 从 FinalBuilder 与 IDE 编译时 $(BDSCOMMONDIR) 不同

我正在从 Delphi XE3 升级到 XE7,我注意到我的 FinalBuilder 脚本不再按预期工作。

我有各种 Delphi 项目配置为输出$(BDSCOMMONDIR)\*设置为系统环境变量的 BPL/DCP 文件C:\Users\Public\Documents\Embarcadero\Studio\15.0。在 IDE 中打开项目并按预期进行编译,但是,每当我使用 FinalBuilder 编译时,文件都会被构建到C:\Users\Public\Documents\RAD Studio\15.0并且我不知道为什么,我到处搜索并且看不到该路径的设置位置,即

  • (IDE) 工具 -> 选项 -> 环境变量
  • %APPDATA%\Embarcadero\BDS\15.0\environment.proj
  • FinalBuilder 环境变量
  • 系统环境变量

在所有这些位置,路径都符合预期。我怀疑在同一台机器上安装XE3XE7 是一个问题,纯粹是因为 XE3 设置$(BDSCOMMONDIR)指向C:\Users\Public\Documents\RAD Studio\10.0(唯一的区别是产品版本)。因为我目前只评估 XE7,所以我想尽量避免卸载 XE3,除非它是绝对必要的。

注意 - 这里的另一个区别是,当我安装 XE7 时,我选择了 Delphi 安装,而不是我之前在安装 XE3 时使用的 RAD Studio 安装(我不需要 C++ Builder 的东西)。

有谁知道为什么会这样?

0 投票
1 回答
810 浏览

delphi - 在 XE7 中,TEdit.OnApplyStyleLookup 不工作

  1. 创建一个简单的 FireMonkey 移动应用程序。
  2. 在表单中添加一个 TEdit 字段。
  3. 分配 OnApplyStyleLookup 事件
  4. 编写以下代码

    /li>

XE6 中的代码运行良好,XE7 Obj 内部为零。请问,这是什么原因,怎么去Obj?

如下代码,获取Obj与NIL值相同:

0 投票
1 回答
871 浏览

delphi - SearchBuf soWholeWord 意外输出

使用选项测试StrUtils.SearchBuf[soWholeWord,soDown]时,出现了一些意外结果。

为什么' Delphi'' Delphi '被认为是一个完整的词?

反向搜索呢?

我完全不明白这一点。除了功能是错误的。

XE7、XE6 和 XE 的结果相同。


更新

QC127635 StrUtils.SearchBuf 使用 [soWholeWord] 选项失败

0 投票
1 回答
994 浏览

delphi - 如何在 THTTPRIO 中为我的 SOAP 客户端使用 OmniXML 解析器

我在这里阅读了 Embarcadero 的“Delphi 和 C++Builder XE7 中的新增功能”页面了解 OmniXML 对 SOAP 的支持。

提高性能的新跨平台 XML 供应商

除了 MSXML 和 ADOM,RAD Studio 现在还提供了一个新的 XML 供应商:OmniXML。OmniXML 跨平台 XML 供应商显示出比替代跨平台 XML 供应商 ADOM 更好的性能结果。RAD Studio 中的 OmniXML XML 供应商基于 OmniXML,但它包括附加功能,例如名称空间支持,并且与 SOAP 兼容。

关于“性能改进”和“与 SOAP 兼容”的信息让我下载了 XE7 演示来试一试。然而,我能找到的关于 OmniXML 的唯一参考是在TXMLDocument.DomVendor我可以将值设置为“Omni XML”的属性中。

谁能告诉我如何在我的 SOAP 客户端中使用 OmniXML 解析器?(我假设需要修改的是 THTTPRIO 组件。)

0 投票
1 回答
713 浏览

android - Delphi TFormatSettings 的输出不正确,在 Windows 中正常,在 Android 中不行

我正在编写一个多平台单元,其中包括使用 Delphi 的 TFormatSettings。我希望创建一个全局 TFormatSettings 让我可以访问我的家庭(英国)位置信息,而不管我的代码将使用的实际区域设置(例如,我需要英国小数分隔符和列表分隔符,这些分隔符因国家/地区而异)。我只是想读取这些值,而不是更改它们,或者修改实际的机器语言环境。为了测试我可以通过这种方式获取信息,我尝试了下面的代码。该代码在 32/64 Windows 中运行良好(返回美元符号,后跟英镑符号),但在我 2 岁的 Nexus 7 上的 Android 上运行时,返回两个输出的美元符号。

它是使用 XE7 和多设备应用程序创建的。

我尝试了各种其他位置字符串,但没有成功。我已经深入研究了 SysUtils 中的“LIBICU”代码,但我正在扩展调试器和我的知识!谁能评论我可能做错了什么?谢谢你的帮助。

稍后编辑解决:要在 Android 中获取英国,您需要通过“en_GB”而不是“en-UK”。Uwe Raabe 显示的这个 Java 链接上也有很多有用的信息。

0 投票
0 回答
510 浏览

debugging - 无法调试/跟踪大型 Win64 应用程序

我有一个包含大约 100 万行代码的大型应用程序,其中 500 个 .dfm 和 .pas 文件分布在许多文件夹中。

使用的用户组件不多,只有少数。没有使用/嵌入外部包。

当我尝试跟踪它或断点作为 Win64 位 exe 目标时,它不会停止,断点线保持绿色。

作为一个32位的目标exe,完全没有问题。

这是在 x64 操作系统上运行的。

如果我尝试使用一个小的基本测试应用程序(大约 1000 行),我可以将其作为 Win64 目标进行跟踪。

XE3、XE6 和 XE7 的行为相同。

我丢弃了项目中的所有配置文件,只使用 DPR 文件加载,以便从头开始重置配置。

我可以编译,没问题,但是那里同样的问题,没有办法追踪它。断点保持绿色。

这真的很烦人,因为我无法调试/跟踪我的应用程序。

任何解决方法将不胜感激。

我不知道它是从哪里来的。

0 投票
1 回答
8291 浏览

android - 我可以在哪些用途中找到 SharedActivityContext?

SharedActivityContext 存在于 XE6 的使用 FMX.Helpers.Android

但是对于 XE7,我在使用 FMX.Helpers.Android 中找不到 SharedActivityContext。是否有另一种方法将其转移到其他用途?

0 投票
1 回答
358 浏览

delphi - “无法为 tcustomcanvasd2d 创建 direct3d 设备”

我在 Windows Vista 下的 Delphi XE7 中的 FireMonkey 项目中遇到上述错误。

发生错误

  • 创建新项目时。
  • 尝试查看在 XE6 中运行良好的项目的 FMX 表单时。
  • 上述 XE6 项目在运行时由 XE7 编译。

加载 FMX 表单时似乎发生了运行时问题。

我注意到 XE7 在设计时或运行时不再正式支持 Vista: http ://www.embarcadero.co.uk/products/delphi/datasheet

是否有任何已知的解决方法可以让 XE7 FireMonkey 和 Vista 64 一起工作?

0 投票
1 回答
552 浏览

delphi - Delphi XE 7 Indy IRC 检测连接丢失

一切正常,但有时几个小时后连接可能会丢失。我应该如何检测到聊天不再起作用?我应该使用 PING/PONG 事件来检测吗?这种情况非常罕见,但仍有可能发生。感谢您的建议。

0 投票
1 回答
1633 浏览

delphi - 如何更改存储在 .exe 文件中的 StringTable 值

我编写了 2 个程序,它们都经过编译,并且都包含通过 .rc 文件添加的“STRINGTABLES”资源。

因此,我们将 App #1 称为“app1.exe”,将 App #2 称为“app2.exe”。

这是我的问题。在 app2.exe 中,我有一个如下所示的字符串表:

当我运行 app1.exe 时,我试图通过 Win32 APIUpdateResource()函数更新存储在 app2.exe 中的资源。

我可以使用 Delphi 的LoadStr()函数从字符串表中加载字符串就好了。

我的问题是我需要了解如何使用UpdateResource()才能更改该字符串表中的字符串。因此,例如,我希望 app1.exe 将 app2.exe 的字符串表从您在上面看到的内容更改为:

很抱歉我没有任何源代码,但是我从头开始,似乎无法弄清楚这一点。

我正在使用 RAD Studio XE7。

如果你们需要更多继续,请直说,我会尽可能多地更新它,但就像我说的那样,我刚刚开始学习TResourceStream所有这些资源,所以我没有太多要展示的东西。我只能告诉你,我对编程并不陌生。我很快就掌握了东西。我已经创建了一个THandleapp1.exe 来查看 app2.exe 的资源。我可以向它添加东西,但似乎当我尝试从一个或组件添加String数据时,它在 app2.exe 的资源中显示为一些奇怪的奇怪中文字母。所以我想知道如何格式化这些字符串,以便它们正确显示在资源和内容中。TEditTMemo

为了更清楚地说明这一点,当我运行 app1.exe 并尝试将字符串输入"Hello"到 app2.exe 的字符串表中时,它给了我这个:

任何线索为什么?

我正在使用一个名为“Resource Hacker”的应用程序在运行程序后检查资源。