Eric G
Eric G

Reputation: 3517

VCL Components not rendering pretty Windows styles

My delphi application looks nice and pretty in the editor, but when compiled it's seemed to being using super old rendering for the buttons and stuff. I thought my compiled applications used to look pretty like the editor. What could I have screwed up for this to be happening?

One suspicion: a while back I was messing with manifests on a different app that needed to find the actual program files directory. Could I have screwed up my delphi project trying too hard for that? This project is set to use runtime themes.

The top is in the editor, the bottom is the compiled version The top is in the editor, the bottom is the compiled version

Upvotes: 1

Views: 293

Answers (1)

David Heffernan
David Heffernan

Reputation: 612794

Your program is being rendered without themes. Possible causes for that:

  1. Your executable has no manifest.
  2. Your executable has a manifest, but it does not specify v6 comctl32.
  3. Your manifest does specify v6 comctl32 but the process is using an external compatibility mode.
  4. Your program disables visual styles in code. For example with a call to SetThemeAppProperties.
  5. Your program uses activation contexts to activate a different manifest from that linked to the executable.

These possibilities get progressively more far-fetched. Most likely you've somehow fluffed your manifest. That's easy to check with a resource editor.

Upvotes: 2

Related Questions