Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как сохранить стандартные цвета для TVirtualStringTree в Delphi после обновления до версии 10.4 Sydney

Delphi , Компоненты и Классы , TTreeView

Проблема сохранения стандартных цветов для TVirtualStringTree в Delphi 10.4 Sydney

После обновления среды разработки до версии Delphi 10.4 Sydney пользователи столкнулись с проблемой сохранения стандартных цветов для компонента TVirtualStringTree. В частности, свойства Colors, такие как BorderColor, DisabledColor, DropMarkColor и другие, начали сохраняться в файлы .dfm с указанием стандартных цветов, даже если разработчик не вносил в них изменений и оставлял значения по умолчанию.

Описание проблемы

В исходном коде компонента VirtualTrees.pas для свойств цветов установлены значения по умолчанию, которые не должны были сохраняться в .dfm файлы. Однако после обновления до версии Delphi 10.4 Sydney, эти свойства цветов начали сохраняться, что приводит к нежелательному увеличению размера .dfm файлов и может вызвать путаницу при работе с проектами.

published
  property BorderColor: TColor index cBorderColor read GetColor write SetColor default clBtnFace;
  property DisabledColor: TColor index cDisabledColor read GetColor write SetColor default clBtnShadow;
  property DropMarkColor: TColor index cDropMarkColor read GetColor write SetColor default clHighlight;
// ...

Возможные причины

Существует предположение, что проблема может быть связана с тем, что свойство Colors является объектом, который имеет свои подсвойства. В конструкторе этого объекта должны быть установлены значения, соответствующие стандартным значениям, объявленным для подсвойств. Если конструктор не устанавливает эти значения корректно, это может привести к тому, что подсвойства будут сохранены в .dfm файлы с нестандартными значениями.

Также обсуждается, что изменение стиля оформления формы в Delphi 10.4 с Windows на Windows10 может влиять на поведение компонентов, заставляя их обновлять цвета в .DFM файлах.

Подтвержденный ответ

Проблема связана с изменением в функциональности StyleServices.IsSystemStyle, которая в предыдущих версиях Delphi возвращала True, а в версии 10.4 Sydney - False. Это изменение приводит к тому, что стандартные цвета сохраняются в .dfm файлы. Однако, проблема уже известна разработчикам компонента Virtual TreeView и будет исправлена в будущих обновлениях.

Альтернативный ответ

Проблема может быть связана с изменением стиля оформления в Delphi 10.4 на Windows10, что приводит к возвращению False функцией StyleServices.IsSystemStyle. Это изменение влияет на многие компонентные пакеты, которые обновляют цвета компонентов в .DFM файлах. Примером может служить пакет TMS VCL UI Pack, где часто встречается проверка (LStyle.Name <> 'Windows').

Решение

Для устранения проблемы рекомендуется дождаться обновления компонента Virtual TreeView, которое исправит данный баг. Если необходимо срочное решение, можно рассмотреть возможность ручного редактирования .dfm файлов или использования альтернативных методов сохранения стандартных значений, не зависящих от текущего состояния StyleServices.IsSystemStyle.

Заключение

Пользователям Delphi 10.4 Sydney, столкнувшимся с проблемой сохранения стандартных цветов для TVirtualStringTree, следует следить за обновлениями компонента и, при необходимости, применять временные решения до их выпуска.

Создано по материалам из источника по ссылке.

Пользователи Delphi 10.4 Sydney столкнулись с проблемой сохранения стандартных цветов для компонента `TVirtualStringTree`, из-за чего свойства цветов сохраняются в файлах `.dfm` даже при отсутствии изменений со стороны разработчика.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TTreeView ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 17:12:53/0.0032548904418945/0