"Transliterate = False" 关于 TFIBDataset 组件
"Transliterate = False" About TFIBDataset Component
我在 Delphi 2010 中使用 TFIBDataset 组件。
每当我打开一个我保留了 TFIBDataset 组件的表单并在不做任何更改的情况下关闭相同的表单时,如果尝试将该 .dfm 文件与代码存储库中的相同文件进行比较,我总是会发现所有相应 TFIBDataset 组件中的所有 "TFIBStringField" 字段的以下代码
Transliterate = False
我想避免此代码出现在 .dfm 文件中。我该如何阻止它,让代码比较变得更容易?
谨致问候。
维沙尔
我想,自上次在表单设计器中打开表单后,您是否更新了 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
的实例时。
我在 Delphi 2010 中使用 TFIBDataset 组件。
每当我打开一个我保留了 TFIBDataset 组件的表单并在不做任何更改的情况下关闭相同的表单时,如果尝试将该 .dfm 文件与代码存储库中的相同文件进行比较,我总是会发现所有相应 TFIBDataset 组件中的所有 "TFIBStringField" 字段的以下代码
Transliterate = False
我想避免此代码出现在 .dfm 文件中。我该如何阻止它,让代码比较变得更容易?
谨致问候。
维沙尔
我想,自上次在表单设计器中打开表单后,您是否更新了 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
的实例时。