gpt4 book ai didi

Delphi运行时主题已启用,但未使用

转载 作者:行者123 更新时间:2023-12-03 15:46:44 24 4
gpt4 key购买 nike

在设计时的旧应用程序(在 WinXP 下的 Delphi 6 中创建 32 位,最近移植到 Win7 下的 Delphi XE2 64 位)中,标准控件看起来“现代”,具有颜色渐变等。 - 不过,它们看起来就像旧的 Win95 版本。

如果 TPageControl 和 TTabControl 中的默认颜色不会让我很难判断当前选择了哪个选项卡,那么这不会太困扰我。

所以我的问题是:

  1. 什么会导致主题在运行时不活动?
  2. 是否可以轻松(例如通过 IDE 配置)使设计时间看起来像运行时间?

注意:

  • 在项目选项中,我为每个现有目标启用了运行时主题。这没有帮助。
  • 我还尝试在包含这些控件的表单中启用 GlassFrame。不幸的是,运行时的外观和感觉仍然没有主题。
  • 此应用程序基于大量内部和外部代码构建,我不精通(只是站在巨人肩膀上的侏儒),但我可以找到其来源。怀疑有些指令将在应用程序启动时禁用主题,我寻找一些关键字,如“Theme”、“Skin”、“TStyleManager”、“SetWindowTheme”希望自己能解决这个问题。我找不到任何重要的东西(至少对我来说)。
  • 我尝试使用来自的信息来对一个小应用程序进行皮肤测试问题 Delphi XE2 VCL styles tutorial - how to change the style at runtime ,而且效果非常好。
  • 为我的应用程序换肤不是我的目标。我只是希望能够在设计时直观地调整一些 GUI 元素,如果设计和运行时看起来很相似,那就更容易了。

最佳答案

事实证明,删除 dpr 文件中的“{$R *.res}”行导致主题不可用。

在D6下,我禁用了项目中的版本信息,并将“{$R *.res}”替换为“{$R 'myApp.res' 'myApp.rc'}”,以使用我自己的rc文件版本信息在一个单独的、易于编辑的文件中,而不是被迫通过项目选项。

在 XE2 下,这不再起作用,因为在构建过程中资源经常会被 Delphi 覆盖(或不考虑,我不太确定)。我必须重命名 rc 文件,使其与应用程序名称不匹配,从而将“{$R 'myApp.res' 'myApp.rc'}”替换为“{$R 'myApp_rc.res' 'myApp_rc.rc'}”。

再次放置“{$R *.res}”(以及“{$R 'myApp.res' 'myApp.rc'}”)似乎可以使主题正确,并且不会破坏版本信息。

谢谢布莱恩让我朝好的方向看。

关于Delphi运行时主题已启用,但未使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11101560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com