问题标签 [delphi-10.3-rio]

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

delphi - 如何使用 Delphi 10.3 通过蓝牙 LE 从移动应用程序向 ESP32 设备发送短信

我正在尝试使用 Delphi 创建一个移动应用程序,它将通过蓝牙 LE 将文本消息发送到 ESP32 设备。

我对 BLE 没有经验,因此尝试遵循官方文档并尝试编辑Delphi 示例应用程序(位于 ..\Embarcadero\Studio\20.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\Bluetooth\ BLEScanner)基于我在Delphi端学习结构的需要。

在 ESP32 方面,我在那里找到了一个 DIY项目。但是一个用于这个项目的 thunkable 应用程序,我不明白如何用 Delphi 做同样的事情(你可以在下面找到应用程序的块视图)。

在此处输入图像描述

是否有人拥有我可以用于此目的的示例应用程序/代码?现在谢谢。

0 投票
0 回答
232 浏览

delphi - 如何检测 THTTPReqResp SOAP 请求的特定(超时)错误?

在 Delphi Tokyo 10.2.xaESOAPHTTPException中是一个 Exception 后代,在创建者中设置了 StatusCode 属性:

我可以通过查看 StatusCode 值来检测特定错误:

我们使用THTTPReqResp. 在 Tokyo的THTTPReqResp错误处理代码中调用HandleWinInetError(GetLastError,,它测试了一些特定的错误,而其他的称为THTTPReqResp.RaiseCheck,然后调用raise ESOAPHTTPException.CreateFmt('- 都传递了 GetLastError 值。这就是它最终出现在 StatusCode 属性中的方式。

但现在在 Delphi Rio 10.3.1 中ESOAPHTTPException = ENetException;ENetException = class(Exception);不再有 StatusCode。 HandleWinInetError离开了。

看,THTTPReqResp或者THTTPReqRespHelper = class helper for THTTPReqResp我看到,例如THTTPReqResp.Execute引发ESOAPHTTPException

...但在那一刻HTTPResponse.StatusCode迷失了(HTTPResponse是方法中的本地变量)。

除了破解 Delphi 代码来拦截这个值(例如,通过像 Delphi Tokyo 那样“重新创建”一个 ESOAPHTTPException 后代),有没有人看到另一种检测特定错误的方法(在我的例子中ERROR_INTERNET_TIMEOUT)?我忽略了什么吗?

0 投票
1 回答
357 浏览

delphi - 如何使用替代代码?

我需要构建一个包含 Alt 代码的字符串,特别是 Alt-16(箭头符号)。我有一行文本(又名字符串)。我附加一个回车,然后想要一个箭头符号和新的文本行。然后这条线将被传递给PPT。如果我手动进入PPT,进入一个文本框,我可以按Alt+16,得到箭头符号。这就是我以编程方式想要做的事情。Alt 符号在这里找到。

这是我正在尝试的,但它给了我一个完全不同的符号。

如何使用 ALT 代码构建字符串作为字符串的一部分?

0 投票
1 回答
270 浏览

delphi - 如何计算 Firemonkey 中 TBitmap 的主色?

有没有一种快速的方法来计算 Firemonkey 位图中的主色(最常见的颜色)?

或者在使用调色板时,FMX 中是否有一个选项可以减少颜色的数量,例如在 Vcl.Imaging.GIFImg 中?

0 投票
2 回答
1104 浏览

postgresql - 有没有办法让 Delphi 的 FireDAC 识别 FireDAC 生成的 PostgreSQL 位置参数?

我正在使用本地 FireDAC Postgres 驱动程序使用从 FireDAC 到 PostgreSQL 11 的命名参数执行查询。在准备语句期间,FireDAC 将命名参数转换为位置参数,这是正确的。但是,如果我随后尝试为这些参数赋值,FireDAC 会引发“参数超出范围”异常。FireDAC 似乎无法识别它生成的位置参数。例如,如果原始 SQL 文本如下所示:

在调用 FDQuery 的 Prepare 方法后,FireDAC 将此查询转换为:

但是当我尝试将值分配给参数时,我得到了错误。分配看起来像这样:

其中 strID 是一个字符串值,accountid 是一个文本字段。此外,如果我使用类似以下的内容,它会返回 0。

我已经大大简化了这段代码,但问题是一样的。如何让 FireDAC 识别它生成的位置参数?


更新:正如我所提到的,上面的代码被大大简化了。实际发生的是,在我们的框架中,我们有一组例程为 FireDAC 宏分配值,然后我们通过准备查询然后读取 FDQuery 的 Text 属性来生成 SQL 语句。然后,该 SQL 语句被分配给另一个 FDQuery(也是动态创建的)的 SQL.Text 属性,并且在那里查询失败。所以,这里有一个非常简单的例子,说明代码内部发生了什么:

我以为可能是FireDAC宏扩展的原因,所以在实例化FDQuery后添加了以下两行:

没有。这也有帮助。我猜 FireDAC 根本不承认 $1 是 PostgreSQL 中的有效位置参数。

0 投票
2 回答
633 浏览

delphi - 检测窗口最小化状态的最佳选择?

我需要检测特定窗口是否被最小化。为此,我发现了两个功能:

1.

2.

两种选择中的哪一种更可取?还是它们在所有情况下都同样出色?

0 投票
2 回答
213 浏览

delphi - 将项目添加到垂直列表的正确方法?

我想在VerticleScrollBar. 预览项目将有一个TRectangleanTImage和一个TLabel

我的表单包含三个按钮btnLoad btnAddbtnClear.

单击btnLoad我正在 Image1 中加载图片:

btnAdd单击时,我将 PreviewItem添加到其中并将VertScroll字符串添加到StringList将用于打印图像(尚未实现):

btnClear我正在清理一切以保持新鲜:

单击mDeleteButton时,我试图从滚动条中删除组件并从 StringList 中删除字符串:

更新

预览项目的创建都在工作,但是当我尝试使用 btnDelete 从 ScrollBar 中删除项目时,它会引发Index Out of bound错误Sl.Delete(j)

为什么它不StringList从该索引中删除字符串?

我怎样才能正确处理这个操作?

更新 1

我如何TImageTRectanglePreviewItems访问VertScroll 这是我正在尝试的当前代码:

0 投票
1 回答
451 浏览

delphi - PostgreSQL 的 FireDAC 异常 EFDDBEngineException 错误代码映射是否有任何变化?

我有 Delphi XE7 应用程序,它使用 Postgres 作为后端,使用 Firedac 进行数据库连接。当同名的数据库'db_name'不存在时,Delphi XE 7 代码会生成EFDDBEngineException类异常。

此异常的类型为ekOther,错误码为 0。

但是,当我将此应用程序迁移到 Delphi 10.3.1 时,错误代码现在返回为 1。我在 Delphi 10.3.1 发行文档中找不到对这一更改的任何引用。

我的问题是:更改 Delphi 10.3.1 代码以检查错误代码 1 而不是 0 是否安全?

0 投票
1 回答
170 浏览

delphi - 禁用编辑器选项卡上的关闭图标?

从 Delphi Tokyo 10.2.x 升级到 Rio 10.3.1 后,编辑器中文件的选项卡现在有关闭图标:

在此处输入图像描述

Delphi Rio 10.3.1 中的关闭图标 - 鼠标悬停使其他人可见/活跃

在此处输入图像描述

Delphi Tokyo 10.2.x 中没有关闭图标

特别是对于较短的文件名,当我想在编辑器中切换到特定文件时,我会经常点击小 x。如果文件有待编辑,我可以单击取消来阻止它关闭,但我经常发现自己不得不重新打开它。

这有点麻烦。

可以在 IDE 中禁用这些关闭图标吗?

0 投票
1 回答
168 浏览

regex - 如何获取尖括号之间的文本但没有尖括号?

我试过这个:

但它也总是匹配尖括号:

在此处输入图像描述

那么我怎样才能得到没有括号的文本呢?(它应该匹配括号中适合一行的任何文本)。