Jump to content
Tom F

Your experience with custom styles - do they work well?

Recommended Posts

Every once in a while, I've tried each of Delphi's custom styles in my D11 Windows app.

 

Every time I try them, the result looks a bit "off" to me. Often, it isn't quite good enough to look professional.

 

I'm not a graphics designer; I don't know anything about choosing a color palette. 

 

I believe that EMB has improved its custom styles (and its implementation in the VCL) over the years.  Perhaps I was soured by the initial versions if they were really bad.

 

But, sit still seems with my app that there are glitches where the coloring isn't quite right. Perhaps one component wasn't ever polished by EMB. Or maybe one of my TPanels on which there's another TPanel doesn't get properly colored, etc.

 

I know some of this might be because of the non-standard, third party visual components that I'm using: Raize, and Mitov, although both vendors produce wonderful tools, so I doubt this is their problem.  Perhaps my placement of visual components is broken. Perhaps the Parent property on some visual objects is wrong after 13 years of adding and removing components to forms.

 

I  know I can modify custom styles if the problem is cosmetic. I'm trying to avoid that (or at least reduce) the learning curve and piece-work of patching up problems.

 

What's the consensus on custom styles?  Do they work?  Are you using them? How much trouble did you have? Are there any specific dark styles from EMB or others that you think work best?  Did you have to modify them or your forms, or did they work out of the box?  Are there some styles that are so ugly or buggy that they're unusable?

 

Are there any "best practices" around styles?

 

What about styles from third parties like DelphiStyles? Have you used them?  I have no problem paying for a custom style if it eliminates work. Are custom styles from third parties higher quality aesthetically? More thoroughly implemented? More likely to work without modification? Are there any other 3rd party vendors of custom styles that you've used?

  • Like 1

Share this post


Link to post
21 minutes ago, Tom F said:

Are custom styles from third parties higher quality aesthetically?

Isn't that a highly subjective question? Any answer would probably depend on someone's personal opinion.

  • Like 1

Share this post


Link to post
10 minutes ago, Uwe Raabe said:

Any answer would probably depend on someone's personal opinion.

Uwe,  yes, undoubtedly there is some subjectivity to this.  UI design is going to be personal to some degree.

However, IMO, that doesn't negate the value of hearing about other people's experiences.

 

 

Share this post


Link to post

With all this primitive tiles and simplified monochrome UI the OS vendors are enforcing, I doubt styles stuff will ever be actual again like in the times of WinAmp.

  • Like 3

Share this post


Link to post
1 hour ago, Tom F said:

Are custom styles from third parties higher quality aesthetically?

I'm not sure if you aware that DelphiStyles also offers services to customize your own personal style.

If you have a specific aesthetic style guide I would assume that they can adopt and adapt it to VCL/FMX.

Edited by Rollo62
  • Thanks 1

Share this post


Link to post

The VCL styles are getting better after each release...however, it seems like they are nearly always "almost there"   For earlier versions of Delphi, I imagine that many devs relied on the fixes found here:  https://github.com/RRUZ/vcl-styles-utils

However, with the newer versions containing many changes/improvements, it is currently debateable if that repo is applicable to RAD Studio 11 anymore.

 

 

  • Like 1

Share this post


Link to post

Yest, VCL Styles Utils package is outdated a lot, but still works with D11.1. It is probably based on code found in XE4, but the package still helps especially on styling system dialogs.

Share this post


Link to post

Any style that differs from the current OSes UI style and style guide, will cause an application to look and feel strangely out of place. You might want or like that, but most of the time users will feel uneasy about it as soon as the initial "wow how pretty" effect has faded to "why is the quit button green?". So in essence styles to me are just another toy where Embarcadero has wasted precious time and money, both of which are direly needed in other areas of the product.

  • Like 3

Share this post


Link to post
54 minutes ago, Sherlock said:

Any style ... will cause an application to look and feel strangely out of place. ...

I would agree, but also I think that depends on the point of view too.


Nowadays people got very much used to operate websites and apps and in those media the styles are growing wild.

Nevertheless also even there a kind of "common" UI establishes from time to time, for example Bootstrap.js, Vue.js, ...

My customers see the old WinUI nowadays as quite boring and often demand their branded UI, if possible.

I sometimes have the feeling that customers like to have a modern "webpage" UI in their desktop apps too, although this might be look-and-feel a bit alien, as you pointed out.

 

Thats why I think, if king customer demands it, he should get it, even if I prefer a good old XP look-and-feel too 🙂

Ok, the VCL/FMX Styles may offer that customization in general, although this is not as easy to operate as it should, like certain Javascript libraries or even HTML/CSS.

 

 

 

Share this post


Link to post
1 hour ago, Sherlock said:

Any style that differs from the current OSes UI style and style guide, will cause an application to look and feel strangely out of place.

That doesn't hold for applications that have to conform to some external guide lines like Corporate Identity or security considerations. Imagine a control software for a machine or automat that looks different depending on the OS used for the current hardware. What if the software on the stationary PC looks different to that used on an iPad for remote access. There are plenty of use cases where the look and feel of a software has to be independent from the underlying operating system - and be it just independent of its current version.

  • Like 1

Share this post


Link to post

@Uwe Raabe You are right, and that is why I sort of constrained my claim to "most of the time". It is very important, that users not have a hard time recognizing their security relevant and time sensitive application. Not many applications however are just that, security relevant or time sensitive. They are simple boring data entry UIs and it is understandable, that a developer is tempted to "pep things up" but that has to be done very carefully and I doubt Themes are the way to go. At least last time I looked at them (three years ago) they where inconsistent and hard to edit/adapt to own wishes.

 

But I believe this is leaving the path the OP had in mind.

Share this post


Link to post

I develop only VCL for Windows and my target are almost exclusively Win10 e Win11 (and Win2012 server+). Windows 7 practically disappeared from my customer PCs and Windows 8 never appeared.

 

In my scenario I'm happily using styles: with latest Alexandria 11.x EMB provide at least 4 default VCL styles HIDPI compliant 2 for Win10 and 2 for Win11 (2 = light + dark). I decide in real time the style to use based on the SysOp and the user's choice to use the light or dark theme of Windows and I get an acceptable result and an UI compliant with that of the SysOp. Without styles in VCL its impossibile to create dark apps.

  • Like 4

Share this post


Link to post
7 hours ago, Sherlock said:

Any style that differs from the current OSes UI style and style guide, will cause an application to look and feel strangely out of place. You might want or like that, but most of the time users will feel uneasy about it as soon as the initial "wow how pretty" effect has faded to "why is the quit button green?". So in essence styles to me are just another toy where Embarcadero has wasted precious time and money, both of which are direly needed in other areas of the product.

Hi, Sherlock,

I disagree with you.  I don't think styles are a toy or a waste of EMB time and money.  

Styles are a necessary tool to allow us developers to modify our apps. I agree that massive changes are ill-advised and will confuse the user. But many modern apps (including the IDE) have a dark mode, which is what we are using styles for. We're not going to make massive changes to the UI that would confuse the user.

  • Like 6

Share this post


Link to post

Well, the system-wide styling were available since the early Windows (all these colors clWindow, clText etc). Properly written apps (those using no hard-coded colors) always fit current color scheme.

  • Like 1

Share this post


Link to post

This is an rather old thread but I'd like to give my 2c for future readers:

 

I was lead of a team modernizing a huge (300+ forms, 3+ MLOC) Delphi application. The major part of the modernization process was about styling it, using VCL Styles. We used Delphi 10.3 at that time, and then eventually we migrated to Delphi 10.4.

 

It took 3 months and we decided to purchase a 3rd party library (StyleControls) to make the process easier and faster. StyleControls has simliar controls (e.g. buttons) that work better with styles than the standard ones. Besides that, SyleControls have some classes to help styling controls that don't support VCL Styles directly (e.g. the DevExpress grid that we extensively use in our application). Disclosure: I'm not connected to StyleControls company in any way.

Regarding VCL code, some hacking was necessary to fix bugs that couldn't be avoided and no workaround was found (mostly runtime patching of VCL classes). We also used the Rodrigo Ruz's VCL Style Utils package, and it also required some tweaking (nothing major though). 

Repainting of complex forms when resizing can also be problematic. A non-styled VCL form with hundreds of controls will repaint itself very fast and there is very little flicker. The same form when styled will cause a severe and ugly flicker that can't be ignored and we also needed to find ways to reduce or interrupt form refreshing in many scenarios in order to reduce this effect.

 

But basically I disagree with who says that it doesn't look professional, or "not quite there yet". The final result looks nice and professional, although there are things that could be improved and refined. The application has been in production, with thousands of users and the general feedback has always been positive. I think it's totaly worth it.

 

  • Like 5

Share this post


Link to post
5 hours ago, Alex7691 said:

Repainting of complex forms when resizing can also be problematic. A non-styled VCL form with hundreds of controls will repaint itself very fast and there is very little flicker. The same form when styled will cause a severe and ugly flicker that can't be ignored and we also needed to find ways to reduce or interrupt form refreshing in many scenarios in order to reduce this effect.

Have you experimented with Skia already, does it help to get faster and smoother repaints?

Share this post


Link to post

I used and currently use styles. I customized two styles and since years I use those. Even with Delphi 12 there is a need for "Rodrigo Ruz's VCL Style Utils" to refine some smudges of some components (one for all TSplitView).

I think, as others have said in that thread, that the look and feel are greatly improved over the normal OS dependent look.

  • Like 1

Share this post


Link to post

@Rollo62 We recently installed Delphi 12 and we are in the process to get the application building with, it which will require some work. We haven't played with Skia4Delphi yet.

Share this post


Link to post
On 12/20/2023 at 7:31 PM, Alex7691 said:

But basically I disagree with who says that it doesn't look professional, or "not quite there yet"

So what happens when you drag your window from a non-High DPI monitor to a High DPI monitor and vice-versa?   Do you get a lag and a bunch of flicker?

Share this post


Link to post
11 hours ago, Darian Miller said:

So what happens when you drag your window from a non-High DPI monitor to a High DPI monitor and vice-versa?   Do you get a lag and a bunch of flicker?

Ha ha ha. I think we all know the answer to this. 

 

They can't even do menus properly. Even for the standard  windows theme the menus are custom drawn and the Emba code gets it wrong in various mixed dpi scenarios. 

 

When I switched to Delphi 11.3 I'd hoped to avoid having to patch the VCL to suppress its custom drawn menus. Alas that hope was doomed. 

Share this post


Link to post
2 hours ago, David Heffernan said:

When I switched to Delphi 11.3 I'd hoped to avoid having to patch the VCL to suppress its custom drawn menus. Alas that hope was doomed. 

Can you list the corresponding QP issues. I would like to have a look at that to push it a bit.

Share this post


Link to post
3 hours ago, Uwe Raabe said:

Can you list the corresponding QP issues. I would like to have a look at that to push it a bit.

I never submitted any. 

Share this post


Link to post
Just now, David Heffernan said:

I never submitted any. 

Ehm, what were your hope based on then? Random mutations of code caused by solar flares?

  • Like 1
  • Haha 4

Share this post


Link to post
4 hours ago, Uwe Raabe said:

Ehm, what were your hope based on then? Random mutations of code caused by solar flares?

I had hope based on my QC reports from XE7 days. 

 

In any case it's a huge design mistake for Emba to implement windows themed menus as custom draw. Just let the bloody system draw it and then it will always be right!! Well, MDI excluded, but menus are getting deprecated any time soon. 

Edited by David Heffernan

Share this post


Link to post
On 12/23/2023 at 9:51 AM, Darian Miller said:

So what happens when you drag your window from a non-High DPI monitor to a High DPI monitor and vice-versa?   Do you get a lag and a bunch of flicker?

We tested the application in a mixed monitor setup and it behaved in an acceptably manner (built with 10.3.3). I'm not saying that it is perfect. I'm saying that we couldn't find any showstopper issue.

 

But I also found issues with several other applications in the same scenario, including WPF ones. I think MS didn't get it perfect either.

 

As I said, the application has thousands of users around the world and the general feedback has been good. Nobody ever said that "it doesn't look prefessional" because of some minor issue like this.

 

Edited by Alex7691

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×