Подтвердить что ты не робот

Delphi - Почему ExplicitWidth и ExplicitHeight продолжают появляться в файлах .DFM и что это такое?

Мы заметили, что при проверке обновлений у наших .DFM файлов были добавлены свойства ExplicitWidth и ExplicitHeight, что, по-видимому, не является особой причиной.

Мои два вопроса: зачем они и почему они автоматически добавляются Delphi?

Ниже приведен пример со свойством в:

object Splitter2: TcxSplitter
    Left = 0
    Top = 292
    Width = 566
    Height = 8
    Cursor = crVSplit
    HotZoneClassName = 'TcxXPTaskBarStyle'
    AlignSplitter = salBottom
    Control = BottomPanel
    Color = clBtnFace
    ExplicitWidth = 8
end
4b9b3361

Ответ 1

Из Googling....

Оригинальную статью можно найти здесь.

Явные свойства запоминают предыдущие оценки элемента управления до свойства Align или Anchor изменились с их значений по умолчанию.

Единственный раз, когда явные свойства не написаны, когда выровнять свойство возвращается к умолчанию значение alNone.

Это когда Явные свойства на самом деле используются reset его границы того, что это было ранее.

Ответ 2

С помощью DDevExtensions вы можете отключить сохранение этих свойств в dfm:
http://andy.jgknet.de/blog/?page_id=10

Добавляет свойство Explicit * для удаления файлов DFM для более старых версий Delphi

Ответ 3

Delphi добавляет значение опубликованных свойств в файл DFM только тогда, когда его значение отличается от значения по умолчанию.

Например:

property ExplicitWidth: Integer read FExplicitWidth write FExplicitWidth default 1;

Если значение ExplicitWidth не равно 1, оно будет записано в DFM. Когда значение "по умолчанию" не определено, любое значение будет записано в DFM.

TcxSplitter не является стандартным компонентом Delphi, лучше спросите его автора о целях свойств.