"Transliterate = False" о компоненте TFIBDataset
Я использую компонент TFIBDataset с Delphi 2010.
Всякий раз, когда я просто открываю форму, в которой я сохранил компонент (ы) TFIBDataset, и закрываю ту же форму без внесения каких-либо изменений, и если я пытаюсь сравнить этот файл.dfm с тем же файлом в репозитории кода, я всегда нахожу приведенный ниже код для всех поле "TFIBStringField" во всех соответствующих компонентах TFIBDataset
Transliterate = False
Я хотел бы, чтобы этот код не входил в файл.dfm. Как мне это остановить, чтобы сравнение кода стало проще?
С наилучшими пожеланиями.
Вишал
1 ответ
Я полагаю, вы обновили FIBPlus с тех пор, как в последний раз открывали форму в конструкторе форм?
Такое поведение происходит, когда свойства компонента добавляются, но не получают default
значение. Значения по умолчанию не сохраняются в dfm-файлах.
Я предлагаю вам проверить эти различия, чтобы не изменять поведение ваших приложений, а затем зафиксировать их в своем хранилище. Вы не будете обеспокоены этим свойством в будущем. Хотя это может произойти и для других объектов.
ОБНОВЛЕНИЕ: я только восстановил Ваш вопрос. Я взглянул на исходный код и теперь у меня есть теория, почему ценность Transliterate
сбрасывается:
Значение по умолчанию Transliterate
является True
(см. Data.DB.pas). Следовательно, ценность True
не будет сохранен в файле dfm. В конструкторе TFIBStringField
(увидеть ниже) Transliterate
установлен в False
,
constructor TFIBStringField.Create(AOwner: TComponent);
begin
inherited;
FDefaultValueEmptyString:=False;
Transliterate:=False;
end;
Как значение True
не сохраняется в dfm, он не будет установлен, когда содержимое dfm назначено экземпляру TFIBStringField
,