Delphi 10.4 сохраняет свойства VirtualTree по умолчанию в файле .dfm.
После обновления до Delphi 10.4 Sydney мои экземпляры TVirtualStringTree сохраняют свои свойства Colors.XYZ в файлах dfm, хотя я оставил для них значения по умолчанию:
В VirtualTrees.pas эти значения цвета имеют значение по умолчанию, что обычно означает, что они не должны записываться в файл 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;
...
Как избавиться от этих цветов по умолчанию в файлах dfm?
2 ответа
This is result of the fact that StyleServices.IsSystemStyle
used to return True in the designer former Delphi version, now in 10.4 it returns False.
This will get fixed soon in Virtual TreeView: https://github.com/JAM-Software/Virtual-TreeView/issues/975
Основная причина, вероятно, в том, что конструктор форм использует:
Стиль Windows в Delphi 10.3 Rio, поэтому StyleServices.IsSystemStyle
возвращается True
Стиль Windows10 в Delphi 10.4 Rio, поэтому StyleServices.IsSystemStyle
возвращается False
Это изменение влияет на многие пакеты компонентов, и они обновляют цвета компонентов в файлах.DFM. Например, в TMS VCL UI Pack этот код есть повсюду(LStyle.Name <> 'Windows')