2
votes

I've ran into a problem with "Vista Dialogs" in "Delphi 10 Seattle" yesterday. It seems to not work well with some VCL Styles. This bug occured while using "Windows 10 Dark" as default style in my app. So my immediate thought was that Vista Dialogs does not work with Custom VCL Styles, but when using "Windows" as a default style and using Windows 10 as OS the dialog works fine.

I've uploaded two pictures, one with the style applied showing the visual bug and one without it, working just fine.

Without "Windows 10 Dark" VCL Style applied

enter image description here

With "Windows 10 Dark" VCL Style applied

enter image description here

I've researched about this, this error is mentioned in other posts, but this bug is not what those posts are about... Anybody understands why this happen? and how can I fix it?

1
No such thing as XE10. You probably need to use Rodrigos various utils.David Heffernan
@DavidHeffernan So you think this is a component bug? I was trying not to use any non "vanilla" components...Nickolas Deluca
VCL styles are the epitome of non vanilla components. Use them and you take a big risk. Immensely hacky and buggy. Only viable with Rodrigo's utils. He wrote much of the emba code anyway. Don't shy from his code.David Heffernan
@DavidHeffernan I'll take a look, thanks!Nickolas Deluca
My personal advice is to resist the temptation and stick the the default system theme. It works and your app will look native.David Heffernan

1 Answers

3
votes

The VCL Styles version included in RAD Studio only can style the classic dialogs, If you want full support for the New Dialogs you must use the VCL Styles Utils project.

Just install the library and add these units to your project.

uses
  Vcl.Styles.Utils.Menus, //Popup and Shell Menus (class #32768)
  Vcl.Styles.Utils.Forms, //dialogs box (class #32770)
  Vcl.Styles.Utils.StdCtrls, //buttons, static, and so on
  Vcl.Styles.Utils.ComCtrls, //SysTreeView32, SysListView32
  Vcl.Styles.Utils.ScreenTips, //tooltips_class32 class
  Vcl.Styles.Utils.SysControls,
  Vcl.Styles.Utils.SysStyleHook;

enter image description here