问题标签 [delphi-10.4.2]

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

delphi - 第二种形式始终保持在主要形式的顶部

我刚刚安装了新的 Delphi Sydney 2 (10.4.2),我发现了一些奇怪的东西:

  • 创建一个新的 vcl 应用程序。
  • 添加一个新表格。
  • 将第二种形式 Visible 设置为 True(这样我们就可以看到它了)。不要更改任何其他项目设置/表单属性。
  • 运行应用程序。

第二个表单将始终位于主表单之上。
在运行时将 FormStyle 设置为 fsNormal 不会修复该行为。

任何人都可以确认这种行为吗?

0 投票
0 回答
231 浏览

delphi - Delphi 10.4.2 Mainform 关闭 QuickReport 预览后消失

我最近升级到 Delphi 10.4.2(来自 10.4.1),现在在使用 QuickReport 预览时遇到了一些奇怪的行为。

在主窗体上,我使用带有一些子菜单的 MainMenu。当子菜单项中的代码导致显示 QuickReport 预览时,关闭此预览窗口后主窗体消失。

调试使我找到了 Vcl.Forms.pas 单元中的这段新代码。过程 TFormStyleHook.TMainMenuBarStyleHook.ProcessMenuLoop 现在结束如下:

以前的 Delphi 版本中没有 else 标签。QuickReport 预览窗口关闭后,FFormHook.Form 指向 MainForm,该 MainForm 将被释放。所以应用程序仍在运行,但主窗体消失了,任务栏中没有应用程序图标。

我的应用程序使用样式。当我从顶层的 MainMenu 项调用 QuickReport 时,不会发生此行为。

有没有其他人遇到过同样的问题?

0 投票
1 回答
236 浏览

delphi - 禁止 Delphi 命令行编译器(dcc32.exe 等)中的提示

使用 Delphi 命令行编译器时如何抑制提示?(即dcc32.exe、dcc64.exe、dcclinux64.exe等)

我知道{$HINTS OFF}可以在源代码中使用它来关闭提示,但它的范围是本地的,只影响放置单元中的代码。我想要一个影响整个编译的全局选项。

我也知道在 IDE 中编译时,可以在 Project Options > Building > Delphi Compiler > Hints and Warnings > Output hints (True/False) 中全局关闭提示。我需要在命令行编译器中使用相同的选项。

可以使用该-W-[WARNING]选项抑制警告,但是提示有什么类似的吗?

0 投票
0 回答
98 浏览

delphi - 为什么我的 .dfm 文件中存储了 Text = ''?默认情况下,不应存储空字符串

这种令人惊讶的行为的原因是什么,这似乎是在我将 Delphi 从 XE2 升级到 10.4.2 之后开始的,即空字符串属性值存储到 .DFM 文件中?

空字符串应该是属性的内置自动默认值,即不存储。

这发生在从 TWinControl 派生的两个组件中名为 Text 的字符串属性(一个直接,另一个通过 TCustomEdit)。可能是因为 TWinControl 派生自 TControl,它也有一个名为 Text 的属性,但类型为 TCaption 而不是字符串类型?这在 XE2 中是相同的,但与当时相比,现在 10.4 中“隐藏其他属性的属性”的处理方式可能不同?

我可以通过添加一个存储Text = ''的指令 + 一个函数来解决我的 .DFM 文件中不必要的问题——但我认为我真的不应该这样做,不是吗?

0 投票
1 回答
214 浏览

delphi - 如何在同一个 IIS 上运行多个 Delphi RAD Server 应用程序?

我创建了一个 RAD 服务器应用程序并将其托管在 IIS 上。为此,我还使用 RAD 服务器多站点许可证安装了 interbase 2020 实例。

现在,我想在同一个 IIS 上再托管一个 RAD 服务器应用程序。我安装了另一个 interbase 2020 实例,指定了另一个端口号和另一个实例名称。再次授予 RAD Server Multi-Site License,安装成功。

但是当我启动第二个实例时,它无法启动,并且日志说“另一个实例已经使用了相同的许可证密钥”。

如何在 IIS 上运行超过 1 个 rad 服务器应用程序?每个这样的 rad 服务器应用程序都应该有一个 interbase 实例吗?多站点许可证不支持这个?

有人能帮我吗 ?

0 投票
2 回答
276 浏览

delphi - RAD Studio:启动 IDE 时出错。如何纠正这个?

只需使用默认选项安装 RAD Studio,当我启动 IDE 时,我会收到以下错误消息。

任何想法 ?

还有一件事: 例外

补充:我尝试在虚拟机上安装……没关系。所以这是我的 PM 上的东西,但是什么?

0 投票
1 回答
200 浏览

delphi - Delphi 10.4 + msbuild = 不稳定的二进制

我刚刚用 Delphi 10.4+gitlab+build machine 实现了一个 CI/CD 环境一切工作显然正确,构建过程运行顺利,但是在使用程序时,它随机显示与我通过“shift+”手动构建相比从未发生过的错误Delphi 本身内部的 F9"(构建)。构建过程:

此外,我尝试了其他 msbuild 变体,例如:

(也有 2 个步骤(目标:清洁和目标:构建)

我还将 msbuild dcc32.exe 命令与“Delphi”dcc32.exe 命令进行了比较,它们基本上是相等的,但是对于 msbuild 输出的附加(不存在)文件夹:

最奇怪的是:在进行 msbuild 构建之后,如果我用 Delphi 打开我的项目,执行 clean+compile 程序变得更奇怪,出现其他错误,但如果我进行完整构建(shift+F9),那么它再次运行顺利我,看起来有些使用的组件没有在 msbuild 下正确编译或与其他参数一起使用,但我不知道它可能是什么或如何找到它。

在 Delphi +在 Delphi 使用cmd msbuild+构建后我得到的错误:cleancompile

First chance exception at $0019FB95. Exception class $C0000096 with message 'privileged instruction at 0x0019fb95'. Process project.exe (11324)

其次是:

First chance exception at $0040AE84. Exception class $C0000005 with message 'access violation at 0x0040ae84: read of address 0x0000000b'. Process project.exe (11324)

查看错误,它在此代码中引发:

如您所见,该Graphic变量并未在任何地方初始化。但是使用干净的 Delphi 构建它可以完美运行并Assigned(Graphic)始终返回false,但在 msbuild 之后它返回为true. 如果这对其他类似情况是正确的,它将导致整个项目出现意外行为。

另一种情况:我在主窗体上放了一个按钮,带有一个引发异常,+ 应用程序异常处理程序 + JCVStackTrace 处理程序,这是捕获的堆栈:

顺便说一句,pcnConversao仅由我的项目间接使用

正确的是:

注意:看起来不同的堆栈与Stack FramesDelphi 的检查直接相关Compiler->Compiling->Code Generation,仍然与未初始化变量的编译器的发散方式无关

0 投票
1 回答
117 浏览

radio-button - 如何在 Delphi 10.4.2 中显示 TGridPanel 中的垂直分隔线,该 TGridPanel 在其列中有一组 TRadioButton

在此处输入图像描述

我有一个有 6 列的 TGridPanel(例如)。在每一列中都有一个 TRadiobutton。一组中的所有五个 TradioButton。这样,五个 TRAdioButtons 可以正常工作,同时只能检查其中一个。为了在列之间添加垂直分隔符,在添加 TRadioButtons 之前,我添加了四个 TPanels(在实际代码 TStackPanel 中),然后我在每个 TPanels 中插入了一个 TRAdioButton,然后适当地配置了面板的 BevelEdges,以显示垂直线。但是现在,正如预期的那样,每个 TRAdioButton 都单独行动,因为它们的父级已从一个唯一的 TGridPanel 更改为 5 个单独的 TPanel。请帮助我同时拥有两个垂直分隔符(在 TGridPanel 中),并使 TRAdioButtons 作为一个组。提前致以最诚挚的问候

0 投票
1 回答
81 浏览

delphi - 当焦点控件干扰时如何捕获 KeyDown?

我有一个 KeyPreview=true 的表单并且想要捕获箭头键,除非我们在一个应该处理这些的控件中。问题是:焦点总是在其中一个控件上。

我怎样才能适应/设计这个工作?

.PAS 文件

.DFM 文件

0 投票
1 回答
90 浏览

delphi - 尝试连接到 ADS 数据库时出现 315 错误

Firedac 错误

当我尝试连接到远程广告数据字典时会发生此错误。在研究错误代码 315 结果时,只出现了错误代码 314。