That's my analysis, anyway. I "distributed" my app to our organization this morning only to learn that, after a month of new work in XE8 on this old win32 app, clients not using the Windows 7 "Basic" theme see a very faded appearance. But those of us using remote desktop or using the Basic theme see about what I think we've always seen.
Facts:
- Made with XE8, Win32, current Raize components
- XPMan removed along the way
- "Enable themes" is "on" in all configs, Metropolis checked, Windows is set as the default theme in Appearance.
- A recent small app with some Raize components looks fine, and I've tried to follow the pattern laid down by this app.
Truths:
- I've been carrying this app around since Delphi 1; I may have rebuilt the project source around Delphi 2 but other than that, I haven't messed with the dproj file much.
- I suspect I'll have to focus on the resource compile bit. The only resources I know are the icon and the manifest, and I'd guess the manifest is the real problem here. I removed "XPMan" about a month ago but did not deploy until this morning.
The dpr looks like this:
program db_silookup;
uses
Vcl.Forms,
Vcl.Themes,
Vcl.Styles,
//...
{$R *.res}
{$R 'win7.rc'}
begin
Application.Initialize;
Application.UseMetropolisUI;
Application.CreateForm(TfmSi, fmSi);
Application.CreateForm(TfmXferList, fmXferList);
TStyleManager.TrySetStyle('Windows');
Application.Title:='Law School Lookup';
Application.Run;
end.
And because I suspect it matters, win7.rc is:
1 24 "win7.manifest"
Which in turn is:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" name="App" version="3.1.0.0" processorArchitecture="*"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
</dependentAssembly>
</dependency>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
</assembly>
Since you are including your own manifest you should disable "Enable runtime themes" or you will have duplicate manifests included in exe, but there can be only one.
You should use "Use custom manifest option" instead, remove
{$R 'win7.rc'}
and let Delphi compile it for you. That will also make it easier for you to change manifest as needed.