问题标签 [delphi-10.1-berlin]

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

delphi - Firemonkey“无调试信息”

在调试 Firemonkey 应用程序(一个弹跳球)时,在球四处移动大约一分钟后,此消息开始涌入 EventLog:

模块加载:D3DCOMPILER_47.dll。没有调试信息。基址:14D50000 美元。处理 bo.exe (13824) 线程开始:线程 ID:14268。处理 bo.exe (13824)

它使调试模式几乎毫无用处。这是一个 Delphi Architect 试用版,空白表单 Firemonkey 应用程序。我想可能是因为它是试用版。

在这种情况发生之前,我确实看到大约三个线程开始了。我没有有意识地启动任何线程,但我假设一个用于用户界面,一个用于调试器?我不知道。这是一个有代表性的样本:

最后两行将无限重复。

更新#1(已编辑):我不想调试 D3DCompiler。我试图找出减速的​​原因。

更新#2:我关闭了模块的调试器消息,这没有帮助。在同一近似点,应用程序的速度急剧下降。这仅在调试时发生。

更新#3:如何重新创建:

  1. 启动一个新的多设备应用程序。
  2. 选择空白应用程序。
  3. 删除一个 TTimer。
  4. 放下一个 TRectangle。
  5. 添加一个布尔公共变量“up”。
  6. 对于 Timer1Timer 添加以下代码:

    procedure TForm1.Timer1Timer(Sender: TObject); begin if up then my := -1 else my := 1; if (Rectangle1.Position.Y + my < 10) or (Rectangle1.Position.Y + my > 470) then up := not up else Rectangle1.Position.Y := Rectangle1.Position.Y + my; end;

将 TTimer 间隔设置为较低的值。在我的机器上,我可以产生高达大约 60 间隔的效果。这是我能够做到的尽可能小,同时仍然得到上述调试器的磨削。

0 投票
2 回答
1527 浏览

delphi - 当实现在多个库中时,Delphi [弱] 引用属性会产生“无效的类类型转换”

Delphi Berlin 10.1 添加了 [弱] 引用。Marco Cantu 的博客有一些基础知识。

对于我的测试,我创建了两个包含两种自动化对象类型的 COM 库。容器对象持有内容对象的列表,而内容对象持有对其容器的弱引用。

以下两种情况经过测试并正常工作(弱引用设置为空并释放内存):

  • 具有接口和 CoClass 的单个 COM 库。
  • 两个 COM 库,一个带有接口,另一个带有 CoClass

但是,当我将 coclass 放在两个单独的库中时,代码会产生“无效的类类型转换”,删除 [weak] 属性时错误就会消失。请原谅奇怪的样本,其目的只是为了使问题最小化,不应被视为标准编码实践

这是第一个为容器定义接口和 CoClass 的库 .ridl 文件:

这是我的容器实现

我的第二个库引用了第一个并且仅包含我的内容接口的 CoClass

及其使用弱引用的实现

我测试如下

为什么在拆分实现时会出现错误?我怎样才能缓解这个问题?

0 投票
1 回答
2517 浏览

android - Delphi'无法解析单元名称'FireDac.phys.mysql'

我想在 Delphi Berlin 10.1 中将我的项目构建为一个 android 应用程序。唯一的问题是,当我将目标平台更改为 Android 时,它'无法解析单元名称'FireDac.phys.mysql'。

虽然一切正常,我可以在目标平台 32 位窗口中构建。

我必须为android指定一个特殊的路径位置吗?还是我错过了其他东西?

0 投票
1 回答
594 浏览

android - startActivityForResult,结果不在主线程内

我正在使用 Delphi 10.1 Berlin。

XE7下一切正常。

现在当我开始一个活动时,结果似乎是在一个线程中处理的,同步/队列会挂起整个应用程序。因为我需要显示一个 TDialogServiceAsync.InputQuery,如果我不同步,我会收到一个异常,告诉我必须从主线程显示我的消息(在 XE7 下工作得很好)

这是“正在”工作的简化代码(经过测试):

称呼 :

处理程序:

除了这个例外(原件和翻译......):

'Les messages doivent être affichés dans le thread principal de l'interface utilisateur'

'消息必须从用户界面主线程显示'

0 投票
1 回答
724 浏览

delphi - SynEdit 不会安装在 Delphi 10.1 Berlin Starter Update 1 中

我正在尝试将 SynEdit 安装到我新升级的 Delphi 10.1 Berlin Starter Update 1 中,但它不起作用。其他人似乎也有这个问题,但我不知道如何解决它。https://forums.embarcadero.com/thread.jspa?messageID=850362

有人能帮助我吗?我正在尝试使用 GetIt 包管理器。我还尝试从我从 Internet 下载的源安装它。

在此处输入图像描述

0 投票
2 回答
909 浏览

delphi - 为什么应用程序以不同于 Default8087CW 的 FPU 控制字开头?

您能否帮助我了解我在 Win32 平台上的 Delphi 应用程序中的 FPU Control Word 发生了什么。

当我们创建一个新的 VCL 应用程序时,控制字设置为 1372h。这是我不明白的第一件事,为什么它是 1372h 而不是单位中Default8087CW定义的 1332h System

这两者的区别:

是根据文档保留或未使用的第 6 位。

第二个问题是关于CreateOleObject.

上述函数将控制字更改为137Ah,因此它打开了第 3 位(溢出掩码)。我不明白为什么它在Reset8087CW之后调用,而不是恢复进入函数之前的单词状态?

0 投票
0 回答
298 浏览

sqlite - 如何适应从 Delphi 10.1 Berlin TImageViewer 中的 sqlite blob 字段加载的图像?

我正在尝试使用 Delphi 的TImageViewer 组件在 blob 字段中显示以前保存的图像。我正在使用 Delphi 10.1 Berlin 进行开发。

图像不适合TImageViewer组件,即使使用BestFit命令,如下所示。图像大于组件。但如果图像不是来自数据库字段,则它适合组件。

这是我的代码:

怎么装?

0 投票
2 回答
3438 浏览

xml - 在 Delphi 10.1 中生成 XML 文件并执行基本的 XML 操作?

我想使用以下格式在 Delphi 10.1 中创建一个 XML 文件

我想从注册表单中获取数据,当单击“确定”按钮时,它应该将来自编辑框、单选按钮等的数据添加到 XML 文件中。

我是 Delphi Programming 的新手,请帮我解决这个问题。

我尝试以这种方式编写代码:

但它返回如下 XML 文件:

应用程序的 UI 就像这个Image

<Employee/>当我在输入数据后单击确定按钮时,它应该通过每次单击确定按钮时创建一个新节点来将数据写入 XML 文件。

0 投票
1 回答
1767 浏览

delphi - Delphi中暂时禁用TvertScrollBox组件的滚动?

我正在柏林 Delphi Rad Studio XE10.1 中为 IOS 和 Android 设备制作应用程序,但我遇到了问题。

在一个表单中,我有一个TvertScrollbox,其中有很多组件要显示,其中一个是Tlistview.

问题是,当我在中滚动Tlistview,因为显示的数据更多,也会在 中滚动,TvertScrollbox最终无法正确可视化数据。

有没有办法暂时禁用滚动TvertScrollbox然后再次启用?

我希望我已经解释得很好。我的英语很差,谢谢。

0 投票
0 回答
392 浏览

android - Delphi Android 应用程序 - 检测设备是否有互联网连接

如何从我的 FireMonkey 应用程序中检测 Android 设备是否具有互联网连接(WiFi 或移动互联网)。我知道我可以使用 Indy 组件...尝试 Ping google.com ...并在超时时等待异常,但我想知道是否存在一些适用于 Android 的“不错”本机解决方案,

我使用 Delphi XE10.1 Berlin