在设计时的遗留应用程序中(在 32 位 WinXP 下的 Delphi 6 中创建,最近移植到 64 位 Win7 下的 Delphi XE2),标准控件看起来“现代”,带有颜色渐变等。虽然在运行时,它们看起来就像旧的 Win95 版本。
如果特别是 TPageControl 和 TTabControl 中的默认颜色不会让我很难判断当前选择了哪个选项卡,那我不会太困扰。
所以我的问题是:
- 什么会使主题在运行时不活跃?
- 是否可以轻松(例如通过 IDE 配置)使设计时间看起来像运行时间?
笔记:
- 在项目选项中,我为每个现有目标启用了运行时主题。它没有帮助。
- 我还尝试在包含这些控件的表单中启用 GlassFrame。不幸的是,运行时的外观和感觉没有主题。
- 这个应用程序建立在许多我不掌握的内部和外部代码(只是站在巨人肩膀上的侏儒),但我可以使用它们的源代码。怀疑某些指令会在应用程序启动时禁用主题,我寻找了一些关键字,如“Theme”、“Skin”、“TStyleManager”、“SetWindowTheme”,希望自己解决这个问题。我找不到任何重要的东西(至少对我来说)。
- 我尝试使用来自 Question Delphi XE2 VCL styles tutorial - how to change the style at runtime中的信息来测试一个小型应用程序,并且效果很好。
- 剥皮我的应用程序不是我的目标。我只是希望能够在设计时直观地调整一些 GUI 元素,如果设计和运行时看起来相似,那就更容易了。