"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,

Другие вопросы по тегам