问题标签 [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 投票
3 回答
5163 浏览

delphi - 如何在 Firemonkey 中使用动画 gif?

如何在 Firemonky 中使用动画 GIF。我可以使用 Timage 加载 gif,但它不是动画。我正在使用 Delphi 10.2 东京。

0 投票
1 回答
209 浏览

delphi - 为什么在优化构建下有两个顺序移动到 EAX?

我查看了启用了所有优化的发布版本的 ASM 代码,这是我遇到的内联函数之一:

该代码很容易理解,它将偏移量 (1) 构建到表中,将其中的字节值与 1 进行比较,如果为 NZ,则执行跳转。我知道指向我的表的指针存储在 $00630e3c 中,但我不知道 $00630bec 的来源。

为什么有两个动作一个接一个?第一个不是被第二个覆盖了吗?这可能是缓存优化的事情,还是我错过了一些令人难以置信的明显/模糊的东西?

上述 ASM 的 Delphi 代码如下:

IsSet() 是一个内联类函数,调用 TSignalManager 的内联 IsSet() 函数:

信号管理器的最终 IsSet 是这样的:

0 投票
1 回答
3743 浏览

delphi - 使用 Delphi Toyko 创建 Zip 文件 onprocess 示例

我正在尝试使用具有 4 个参数的命令 ZipDirectoryContents 使用 Delphi Tokyo 创建一个 zip 文件。他们是

有没有人可以告诉我如何使用这些参数,尤其是 TZipProgressEvent 来显示 zip 文件的进度,因为它正在从目录中添加文件。谢谢

0 投票
2 回答
861 浏览

java - 在Delphi中使用Delphi的AndroidHelper或JNI访问静态Java方法

了解问题的重要文件:

VpnService Java 类

翻译成 Delphi 的 VpnService

我的目标是public static Intent prepare(Context context)从.VpnService.javaIntent

我尝试了几种方法来访问它,例如:

或者

或者

我真的不知道如何访问这个静态方法。

0 投票
1 回答
361 浏览

delphi - Delphi 无法通过 shellexecute 执行 brcc32

我已经开始编写组件,我想编写一个程序来为我生成 DCR 文件。一个组件的图片必须是24x24的位图,所以我需要创建一个资源文件,然后brcc32用来创建DCR。

脚步:

  1. 创建 24x24 位图(油漆,旧但金色)
  2. 创建 RC 文件
  3. 使用 brcc32 创建 DCR

所以,我想编写一个程序来为我制作所有这些东西,这就是表格。在编辑字段中,我写了他们的Name属性。

图片

这是代码:

我可以正确创建 RC 文件,但没有创建 DCR。我在命令中做错了吗?

PChar()在谷歌搜索后添加了这个,我在 StackOverflow 上找到了提示,但我仍然不确定。

0 投票
0 回答
69 浏览

delphi - 包含 midaslib 时,资源字符串表被覆盖

当我包含midaslib在我的使用子句中时,资源字符串表被“0:成功完成”和 15 个空字符串覆盖。

我包含一个预编译的 .Res 文件。

原始测试程序:

结果 :

资源:0:1:Pingwin 5 - Fout!2:好的!3:Pingwin 5-贝里希特!4:Kan bestand niet openen!5:Weet u het zeker 吗?6:维维德伦!7 : 8 : 9 : Opgelet : Deze informatie gaat definitief verloren !!! 10 : 11 : Opgelet : Het geselecteerde Boekjaar zal volledig verwijderd worden !!! 12 : Opgelet : De BTW Listing zal definitief verwijderd worden !!! 13 : Opgelet : Verwijderen van de Ouderdomshistorieken !!! 14 : Opgelet : Verwijderen van de Historieken klanten/Leveranciers !!! 15 : Opgelet : Deze Klant zal Definitief verwijderd worden !!! 16 : Opgelet : Deze Leverancier zal Definitief Verwijderd worden !!! 17 : Opgelet : Deze Contactinformatie zal Definitief verwijderd worden !!!

当包含 Midaslib 时,资源字符串表发生了变化。

资源字符串: 0:成功完成。1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:Opgelet:Deze Leverancier zal Definitief Verwijderd worden !!! 17 : Opgelet : Deze Contactinformatie zal Definitief verwijderd worden !!!

在查看 .exe 时,我发现两个字符串表 原始字符串表 新字符串表

0 投票
2 回答
281 浏览

delphi - 调试包含字符串的 TValue

我在调试时无法检查 TValue 变量的字符串值。悬停菜单不显示字符串值,甚至将其添加到监视列表似乎很棘手。

给定一个非常基本的示例控制台应用程序,例如

向该行添加断点WriteLn,我可以将鼠标悬停在Value变量上并查看值类型,但实际上并没有关于字符串值的任何信息,请参阅

调试器中的变量

接下来我尝试将它添加到监视列表中,.AsType<string>但在我的实际应用程序中使用示例应用程序中的内部错误,E2531(方法需要显式类型参数)。选中/取消选中允许副作用和功能的选项没有区别。 监视列表错误

最终起作用的是为转换创建一个函数,例如

并在监视列表中使用它。我不得不在应用程序代码中使用这个函数(例如在WriteLn示例中的调用中)以避免它被链接器删除。这也意味着我必须将这个函数或包含这个函数的单元添加到我要调试的每个单元中。

有更好的解决方案吗?

0 投票
1 回答
429 浏览

java - 将 Java .class 文件传递​​给 Delphi 构造函数

我正在与 JNI 合作以访问 Delphi 10.2 Tokyo 中的 Android 功能。我需要传递一个.class类型作为 Delphi 函数构造函数的参数。

原始的 Java 方法如下所示:

来自构造函数的 Android 文档Intent

为特定组件创建意图。

我必须使用这个构造函数,我不能改变它。

我需要把它翻译成 Delphi,但我一直在传递.class类型。现在,我的代码看起来像这样:

我尝试使用 Java 中的 ClassLoader,但无法访问该loadClass()函数,因为它仅受保护所以包。

我尝试使用Class.forName,但无法Path.class 文件中指定。

我将该.class文件添加为 Delphi 资源文件并通过 加载它TResourceStream,但找不到将此输入转换为 JavaClass引用的解决方案。

0 投票
0 回答
367 浏览

delphi - Delphi FireMonkey - 在 Win 10 上设置壁纸在部署为 APPX 时不起作用

我使用 Delphi 10.2 Tokyo(使用 FireMonkey)创建了一个简单的应用程序,它显示图像并允许您为所选图像设置桌面墙纸。设置桌面壁纸的主要代码是:

虽然这在应用程序在桌面上运行(作为独立安装)时效果很好,但在作为提交到 Windows 10 App Store 的 APPX(在认证过程中)运行时会失败。将壁纸设置为 APPX 时,结果是黑屏背景而不是所选图像。

我认为这是由于 APPX 在受限模式下运行,只能访问虚拟注册表(而不是实际注册表)。所以我把电话改成了:

当在桌面上作为独立应用程序运行时,这也适用。但即使删除参数 SPIF_UPDATEINIFILE 也不能让应用程序作为 APPX 包部署工作 - 它仍然没有设置壁纸并导致黑屏。

对这个社区的任何指导感兴趣,关于我如何设置桌面壁纸并让它即使在打包和部署为 APPX 时也能正常工作。提前致谢!

附录:我将关闭此文档(摘录如下):

fWinIni [输入]

类型:UINT

如果正在设置系统参数,则指定是否要更新用户配置文件,如果是,是否要向所有顶级窗口广播 WM_SETTINGCHANGE 消息以通知它们更改。

如果您不想更新用户配置文件或广播 WM_SETTINGCHANGE 消息,则此参数可以为零...

更新 20170804:

根据@Victoria 和@DaveNottage 的反馈,我尝试实现 WinRT 调用,如下所示:

不幸的是,这不起作用并给出错误:No such interface supported.如果有人可以查看这个并让我知道我做错了什么,我将不胜感激......

0 投票
1 回答
954 浏览

delphi - 有什么办法可以避免在任务栏小窗口悬停时显示隐藏表单?

这与带有子窗体的 Delphi 应用程序有关,该窗体已显示然后隐藏但未释放。如果用户将鼠标悬停在应用程序的(Windows 10)任务栏“迷你视图”上,隐藏的表单将变为可见(在悬停期间)。当用户单击迷你视图以将焦点更改为时,它们将隐藏应用程序。有没有办法避免这种情况?

要重新创建:

  1. 创建一个新的 VCL 表单应用程序。
  2. 向项目中添加一个新表单并将其设置为自动创建。
  3. 添加一个按钮以显示然后隐藏表单(或使用 ShowModal 打开它)
  4. 运行应用程序
  5. 单击按钮以显示第二个表单,然后将其关闭。
  6. 将鼠标悬停在应用程序任务栏按钮上以显示主窗口的迷你视图。
  7. 将鼠标悬停在迷你视图上,可以看到隐藏的窗口出现在主窗体上。

请注意,最小化应用程序并恢复它确实会“修复”影响,直到下次显示表单。也许这是导致它的线索或解决方法的线索?这不是一个大问题,因为它似乎不会导致任何实际问题,但它看起来确实不专业。

根据要求添加代码(但是它不会很有趣。)


更新:如何仅使用 Delphi IDE 来显示问题。

  1. 运行德尔福
  2. 打开任何代码文件并搜索一个字符串,然后使用 F3 直到出现对话框“未找到搜索匹配”、“从文件开头重新开始搜索”
  3. 关闭步骤 2 中的“未找到搜索匹配”窗口。
  4. 将鼠标悬停在 Delphi 任务栏按钮上,然后将其移至迷你预览。
  5. 您应该会看到“未找到搜索匹配”窗口出现在 Delphi 主窗口上方。我已经在柏林和东京 (10.2.1) 验证了这一点