2016-08-19 3 views
2

J'ai rencontré un problème avec "Vista Dialogs" dans "Delphi 10 Seattle" hier. Il semble ne pas fonctionner correctement avec certains styles VCL. Ce bug s'est produit lors de l'utilisation de "Windows 10 Dark" comme style par défaut dans mon application. Donc, ma pensée immédiate était que Vista Dialogs ne fonctionne pas avec les styles VCL personnalisés, mais lorsque vous utilisez "Windows" comme style par défaut et que vous utilisez Windows 10 comme système d'exploitation, la boîte de dialogue fonctionne correctement.Delphi 10 Seattle - Dialogues Vista bug avec les styles VCL

J'ai mis en ligne deux images, une avec le style appliqué montrant le bug visuel et l'autre sans, fonctionnant très bien.

Sans "Windows 10 Dark" VCL style appliqué

enter image description here

Avec "Windows 10 Dark" VCL style appliqué

enter image description here

J'ai fait des recherches à ce sujet, cette erreur est mentionné dans d'autres messages, mais ce bug n'est pas ce que ces messages sont sur ... Quelqu'un comprend pourquoi cela arrive? et comment puis-je le réparer?

+2

Rien de tel que XE10. Vous avez probablement besoin d'utiliser divers utilitaires Rodrigos. –

+0

@DavidHeffernan Donc vous pensez que c'est un bug de composant? J'essayais de ne pas utiliser de composants non "vanille" ... –

+1

Les styles VCL sont l'épitomé des composants non vanille. Utilisez-les et vous prenez un gros risque. Immensément hacky et buggy. Seulement viable avec les utils de Rodrigo. Il a écrit une grande partie du code d'emba de toute façon. Ne pas timide de son code. –

Répondre

2

La version VCL Styles incluse dans RAD Studio peut uniquement styler les boîtes de dialogue classiques. Si vous souhaitez une prise en charge complète des nouvelles boîtes de dialogue, vous devez utiliser le projet VCL Styles Utils.

Installez simplement la bibliothèque et ajoutez ces unités à votre projet.

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