我有一个项目,我从Turbo Delphi开始,我最近更新到D2009,我注意到表单设计师有点怪癖。所有旧表单都应用了Win98样式。例如,按钮是灰色的,具有尖锐的方形边缘。但是,自升级以来我创建的任何新表单都以WinXP风格显示其控件。如果我从旧表单复制控件并将其粘贴到新表单,则样式会更改。在运行时,所有表单中的所有控件都以XP风格显示。
知道是什么导致我的旧表格以旧式显示吗?我查看了属性列表,但没有任何内容突然出现在我面前。但显然有一些东西,它是持久的,因为保存和重新加载不会改变它。任何人都知道这个属性在哪里以及如何解决它?
答案 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>