问题标签 [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.
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 做同样的事情(你可以在下面找到应用程序的块视图)。
是否有人拥有我可以用于此目的的示例应用程序/代码?现在谢谢。
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
)?我忽略了什么吗?
delphi - 如何使用替代代码?
我需要构建一个包含 Alt 代码的字符串,特别是 Alt-16(箭头符号)。我有一行文本(又名字符串)。我附加一个回车,然后想要一个箭头符号和新的文本行。然后这条线将被传递给PPT。如果我手动进入PPT,进入一个文本框,我可以按Alt+16,得到箭头符号。这就是我以编程方式想要做的事情。Alt 符号在这里找到。
这是我正在尝试的,但它给了我一个完全不同的符号。
如何使用 ALT 代码构建字符串作为字符串的一部分?
delphi - 如何计算 Firemonkey 中 TBitmap 的主色?
有没有一种快速的方法来计算 Firemonkey 位图中的主色(最常见的颜色)?
或者在使用调色板时,FMX 中是否有一个选项可以减少颜色的数量,例如在 Vcl.Imaging.GIFImg 中?
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 中的有效位置参数。
delphi - 检测窗口最小化状态的最佳选择?
我需要检测特定窗口是否被最小化。为此,我发现了两个功能:
1.
2.
两种选择中的哪一种更可取?还是它们在所有情况下都同样出色?
delphi - 将项目添加到垂直列表的正确方法?
我想在VerticleScrollBar
. 预览项目将有一个TRectangle
anTImage
和一个TLabel
。
我的表单包含三个按钮btnLoad
btnAdd
和btnClear
.
单击btnLoad
我正在 Image1 中加载图片:
在btnAdd
单击时,我将 PreviewItem添加到其中并将VertScroll
字符串添加到StringList
将用于打印图像(尚未实现):
btnClear
我正在清理一切以保持新鲜:
单击mDeleteButton
时,我试图从滚动条中删除组件并从 StringList 中删除字符串:
更新
预览项目的创建都在工作,但是当我尝试使用 btnDelete 从 ScrollBar 中删除项目时,它会引发Index Out of bound
错误Sl.Delete(j)
为什么它不StringList
从该索引中删除字符串?
我怎样才能正确处理这个操作?
更新 1
我如何TImage
从TRectangle
PreviewItems访问VertScroll
这是我正在尝试的当前代码:
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 是否安全?