2016-08-19 12 views
2

Вчера я столкнулся с проблемой «Диалоги Vista» в «Delphi 10 Seattle». Кажется, что не работает с некоторыми стилями VCL. Эта ошибка возникла при использовании «Windows 10 Dark» в качестве стиля по умолчанию в моем приложении. Итак, моя непосредственная мысль заключалась в том, что Vista Dialogs не работает с Custom VCL Styles, но при использовании «Windows» в качестве стиля по умолчанию и использования Windows 10 в качестве ОС диалог прекрасно работает.Delphi 10 Seattle - ошибка Dialogs Vista с VCL-стилями

Я загрузил две фотографии, один с приложенным стилем, показывающим визуальный баг, и один без него, работающий отлично.

Без "Windows 10" Dark VCL Стиль применяется

enter image description here

С "Windows 10" Dark VCL Стиль применяется

enter image description here

Я исследовал об этом, эта ошибка упомянутых в других сообщениях, но эта ошибка не является тем, что эти сообщения ... Кто-нибудь понимает, почему это происходит? и как я могу это исправить?

+2

Нет такой вещи, как XE10. Вам, вероятно, придется использовать Родригос в разных утилях. –

+0

@DavidHeffernan Итак, вы думаете, что это ошибка компонента? Я пытался не использовать какие-либо компоненты «ванили» ... –

+1

Стили VCL - это воплощение не ванильных компонентов. Используйте их, и вы рискуете. Очень хриплый и багги. Только жизнеспособный с утилизацией Родриго. В любом случае, он написал большую часть кода. Не стесняйтесь его кода. –

ответ

2

Версия VCL Styles, включенная в RAD Studio, может только классифицировать классические диалоги. Если вы хотите полностью поддерживать новые диалоги, вы должны использовать проект VCL Styles Utils.

Просто установите библиотеку и добавьте эти единицы в свой проект.

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