关闭Delphi 7应用程序的主题

4

我需要修复一个20年前的Delphi 7应用程序。修复后,我打算通过修复GUI主题来改进应用程序,因此在主窗体上拖放了XPManifest组件。虽然这使大多数控件看起来更好,但出现了一些问题。例如,某些复选框和单选按钮的文本是黄色的,而背景是蓝色的(blargh),主题设置的黑色文本颜色使它们的标签无法阅读。因此,我决定删除XPManifest组件并重新构建程序,以恢复原始外观。

有趣的是,即使删除了XPManifest并重新编译exe,GUI主题仍然存在。我检查了DFM文件,并没有在其中找到XPManifest。我该如何解决这个问题?

2个回答

5

这个组件的作用只是在 uses 子句中添加一个单元,据我所知是 XPMan,它链接了一个启用主题的资源文件。从 uses 子句中移除该单元即可恢复默认行为。

这清楚地表明了修订控制的价值。


实际上,该代码已在修订控制下,但是当我尝试添加“XPManifest”时,我有一些未提交的更改,因此我无法使用git还原它,因为那样会将一切都还原回去。我想我只需在窗体上放置该组件,然后在不喜欢结果时将其删除。吸取了教训。 - kol

0

当时的 VCL 并不十分了解主题。许多 VCL 组件在启用主题时会出现错误,但在禁用主题时则没有。将 Soft-Gems' XP Theme Manager1 安装到你的项目中。它不仅能为你启用主题,还可以钩入 VCL 以修复许多错误。

1:Soft-Gems 的代码最终直接合并到 VCL 中,但我不记得是在 Delphi 7 中发生还是之后了。


2
那段代码已经集成在Delphi 7中了。需要Mike的代码的是Delphi 6。无论如何,这回答了一个不同的问题,应该作为评论。 - David Heffernan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接