表单设计器在更新项目的控件显示样式上不一致

时间:2008-12-24 17:44:27

标签: delphi controls properties delphi-2009 themes

我有一个项目,我从Turbo Delphi开始,我最近更新到D2009,我注意到表单设计师有点怪癖。所有旧表单都应用了Win98样式。例如,按钮是灰色的,具有尖锐的方形边缘。但是,自升级以来我创建的任何新表单都以WinXP风格显示其控件。如果我从旧表单复制控件并将其粘贴到新表单,则样式会更改。在运行时,所有表单中的所有控件都以XP风格显示。

知道是什么导致我的旧表格以旧式显示吗?我查看了属性列表,但没有任何内容突然出现在我面前。但显然有一些东西,它是持久的,因为保存和重新加载不会改变它。任何人都知道这个属性在哪里以及如何解决它?

5 个答案:

答案 0 :(得分:2)

您应该启用运行时主题。

你检查了吗?

Project | Options | Application | [  ]  Enable Run Time Themes

答案 1 :(得分:1)

查看旧表单和新表单中的uses子句,可能会有不同之处。我知道在delphi 7中你必须添加xpman(或类似的东西)才能获得windows皮肤。

答案 2 :(得分:0)

你检查过dfm文件了吗?有时会在属性列表中显示某些内容。

答案 3 :(得分:0)

也许你的dfm中有一个迷失的Ctl3D(sp?)设置?

答案 4 :(得分:0)

使用D2007,

在我的运行时包上遇到了同样的问题。它们可能使用D5或D7创建。

要解决此问题:简单添加一个" XP主题ManiFest"到你的罪魁祸首" res"文件。

D2007清单示例:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
    type="win32"
    name="CodeGear RAD Studio"
    version="11.0.2902.10471" 
    processorArchitecture="*"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"/>
        </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>