问题标签 [delphi-10.2-tokyo]

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

delphi - 如何获取编译器版本符号

除了常量RTLVersionCompilerVersion有什么方法可以获取版本符号VER320而不是跟随代码?

0 投票
3 回答
848 浏览

delphi - 如何在其他组件后面显示视频?

我正在使用 FMX 在 Delphi 10.2 Tokyo 中创建软件。我想在所有组件后面使用TMediaPlayerControl. 我将其发送TMediaPlayerControl到后面并播放视频,但视频不在组件后面播放,而是在它们之上播放。

TMemo在客户区放了一个,TMediaPlayerControl在它后面放了一个。它应该做的是在 . 后面播放视频TMemo,而不是在TMemo.

如何在后台播放视频TMemo

0 投票
1 回答
363 浏览

android - 在 Delphi 中实现 addDefaultNetworkActiveListener

使用这里提到的解决方案,我能够获得网络的状态。但是我还需要在状态更改时实现事件。我知道我必须使用addDefaultNetworkActiveListener过程,但我在OnNetworkActiveListener. 有谁知道这个界面是什么OnNetworkActiveListener样子的?

谢谢山姆

0 投票
1 回答
545 浏览

delphi - Delphi Firedac Oracle:定位主键(VARCHAR 或 VARCHAR2)时引发异常

oracle 的示例表

德尔福(Rad Studio)示例

当我调用 GetVal1 函数内部“定位”时引发异常并显示消息

我尝试用其他 DB(SQLite) 重现这个测试,没有像 oracle 那样引发异常。

这是我的代码中的错误或缺失的东西。有人可以解释一下。

我做了一项研究并尝试追踪这个错误,我在 FireDac.Comp.Client.pas (Delphi Tokyo 10.2) 进入可疑区块

我该如何解决这个问题。

0 投票
1 回答
133 浏览

android - 为什么我的 TListview 省略了第一条记录

以下代码工作正常,但不知道为什么它省略了第一条记录。但是,如果删除此行 ListViewMain.Items.Clear; 在第二次调用时,它会正确显示所有记录。我正在使用 SQLite。

0 投票
0 回答
335 浏览

delphi - Delphi (BCDField) Oracle FireDac Master Detail 引发字段的无效变体类型或大小

这是我的甲骨文表

当打开详细信息表异常引发时,BCDField 作为主详细信息,因为带有标量(10,0)的 oracle 类型号被检测为 BCDField。我的 delphi 示例,当我将 NUMBER(10,0) 更改为 NUMBER(8,0) <--来自 int32 的文档时,MapRules 不起作用

我得到这个异常“引发字段'ID'的无效变体类型或大小”有人可以解释为什么会引发这个异常。

0 投票
2 回答
455 浏览

delphi - Delphi TThread 后代返回结果

情况。我创建了一个包含一些类的单元来解决代数问题(同余和系统),我正在向您展示代码:

我决定使用TThread这个类,因为这个类有一个 Execute 方法,由于传递给构造函数的参数的长度,它可能需要一些时间才能完成。这是实现:


问题

如果您看一下,Queue您会发现我正在使用(就像测试一样) ShowMessage 并且它显示sysResult. 顺便说一句,第二行有一些我无法理解的问题。

构造函数有var result: integer,所以我可以从传递的变量中获得副作用,然后我可以分配resInner := result;. 最后(在队列中)我给出resInner了 sysResult 的值,并且result由于var. 为什么这不会发生?

我做了另一个测试,改变了这样的构造函数:

并将队列更改为:

在构造函数中,我传递了作为引用的 TMemo 并且可以,但是原始的不是var result: integer作为引用传递的吗?那为什么不行呢?

我想这样做是因为我想做这样的事情:

WheregiveMeSolution只是一个简单的过程,它使用a包含系统结果的变量。如果这是不可能的,我该怎么办?基本上 Execute 结束时的结果只是一个整数,必须传递给主线程。

我已经阅读过ReturnValue但我不知道如何使用它。

0 投票
1 回答
217 浏览

multithreading - 使用 TSaveDialog 找出应用程序线程消息丢失的原因

在 Windows 10“Creators Update”64 位上使用 RAD Studio (Delphi) v10.2.1(东京版本 1)进行开发,但 32 位开发。

该应用程序是具有多个后台线程的 VCL,每个后台线程都使用 Indy TidHTTP 来获取网络资源。主线程和后台线程之间的同步是使用消息队列(PostThreadMessage 调用)实现的。这很复杂,在这里提供直接代码会很困难和混乱,所以我从口头描述开始。

应该发生什么:打开一个包含外部资源链接的文件,这会生成 HTTP 请求并将它们交给后台处理,然后等待应用程序消息队列中的传入消息说资源已下载。应用程序消息在分配给 TApplication.OnMessage 的事件代码中匹配(我怀疑这是我的问题所在)。

有用。大多数时候一切都很顺利。但是如果我打开一个 TSaveDialog——即使我取消了对话框而不是实际做任何事情——那么消息就会从应用程序消息队列中丢失。

通过编写日志消息的过程(无法直接调试,因为这会打乱导致问题所需的时间),我发现后台线程确实在发布消息(并从 PostThreadMessage 获得积极响应),但他们永远不会出现在我的 TApplication.OnMessage 事件代码上。

我已经看到各种库中的一些鬼鬼祟祟的代码会设置自己的 PeekMessage/TranslateMessage/DispatchMessage 循环,但并非所有人都记得检查是否有 TApplication.OnMessage 事件。但是我刚刚搜索了 VCL 代码和我正在使用的十几个第三方库,并没有发现任何在这种情况下会受到影响的实例(据我所知)。

注意:我正在使用 madExcept、Indy、FastReport、AddictSpell、SynEdit、VclStyleUtils(以及其他一些鲜为人知的库)

注 2:我想知道它是否与 Delphi 10.2.1 或 Windows 10 Creator 的更新有关,因为我还看到了一些其他奇怪的行为(第一个异常或第一个 TOpenDialog 的长时间延迟 - 但仅在某些应用程序上) 10.1 肯定不会发生(我没有使用 10.2.0)。...但这可能(可能是)不同的东西。

所以我的问题是:我能做些什么呢?

关于如何查找/验证是否有其他代码窃取应用程序消息的任何建议?除了 PeekMessage 之外,我还应该搜索什么?

是否有另一种方法来拦截可能让我避免问题的应用程序消息队列消息?

如果没有更好的选择出现,我可能不得不放弃使用应用程序线程消息并实现我自己的消息传递/同步系统,我宁愿在其他时间都很好地工作后不这样做。

0 投票
2 回答
320 浏览

delphi - ClientDataSet 的 IndexName 错误

安装 RAD Studio 10.2 Tokio 后,而不是以前的版本,代码给我一个错误。

当我将有效的索引字符串分配给 ClientDataSet 的属性 IndexName 时(不总是但经常,但我不明白为什么),代码给了我这个错误:异常消息:

这些是错误之前的步骤:

可能是什么原因?

0 投票
1 回答
295 浏览

android - TListView change color from existing item android platform

I need some example how to change color text item for each row from my list view in FireMonkey.

I try something like this but unsuccessfully.