|
@@ -944,7 +944,7 @@ begin
|
|
DefValue :=PPropInfo(PropInfo)^.Default;
|
|
DefValue :=PPropInfo(PropInfo)^.Default;
|
|
DefFloatValue:=PSingle(@PPropInfo(PropInfo)^.Default)^;
|
|
DefFloatValue:=PSingle(@PPropInfo(PropInfo)^.Default)^;
|
|
end;
|
|
end;
|
|
- if (FloatValue<>DefFloatValue) or (DefValue=longint($80000000)) then
|
|
|
|
|
|
+ if (FloatValue<>DefFloatValue) or (not HasAncestor and (DefValue=longint($80000000))) then
|
|
begin
|
|
begin
|
|
Driver.BeginProperty(FPropPath + PPropInfo(PropInfo)^.Name);
|
|
Driver.BeginProperty(FPropPath + PPropInfo(PropInfo)^.Name);
|
|
WriteFloat(FloatValue);
|
|
WriteFloat(FloatValue);
|
|
@@ -985,9 +985,12 @@ begin
|
|
if HasAncestor then
|
|
if HasAncestor then
|
|
DefStrValue := GetStrProp(Ancestor, PropInfo)
|
|
DefStrValue := GetStrProp(Ancestor, PropInfo)
|
|
else
|
|
else
|
|
|
|
+ begin
|
|
|
|
+ DefValue :=PPropInfo(PropInfo)^.Default;
|
|
SetLength(DefStrValue, 0);
|
|
SetLength(DefStrValue, 0);
|
|
|
|
+ end;
|
|
|
|
|
|
- if StrValue <> DefStrValue then
|
|
|
|
|
|
+ if (StrValue<>DefStrValue) or (not HasAncestor and (DefValue=longint($80000000))) then
|
|
begin
|
|
begin
|
|
Driver.BeginProperty(FPropPath + PPropInfo(PropInfo)^.Name);
|
|
Driver.BeginProperty(FPropPath + PPropInfo(PropInfo)^.Name);
|
|
if Assigned(FOnWriteStringProperty) then
|
|
if Assigned(FOnWriteStringProperty) then
|
|
@@ -1002,9 +1005,12 @@ begin
|
|
if HasAncestor then
|
|
if HasAncestor then
|
|
WDefStrValue := GetWideStrProp(Ancestor, PropInfo)
|
|
WDefStrValue := GetWideStrProp(Ancestor, PropInfo)
|
|
else
|
|
else
|
|
|
|
+ begin
|
|
|
|
+ DefValue :=PPropInfo(PropInfo)^.Default;
|
|
SetLength(WDefStrValue, 0);
|
|
SetLength(WDefStrValue, 0);
|
|
|
|
+ end;
|
|
|
|
|
|
- if WStrValue <> WDefStrValue then
|
|
|
|
|
|
+ if (WStrValue<>WDefStrValue) or (not HasAncestor and (DefValue=longint($80000000))) then
|
|
begin
|
|
begin
|
|
Driver.BeginProperty(FPropPath + PPropInfo(PropInfo)^.Name);
|
|
Driver.BeginProperty(FPropPath + PPropInfo(PropInfo)^.Name);
|
|
WriteWideString(WStrValue);
|
|
WriteWideString(WStrValue);
|
|
@@ -1017,9 +1023,12 @@ begin
|
|
if HasAncestor then
|
|
if HasAncestor then
|
|
UDefStrValue := GetUnicodeStrProp(Ancestor, PropInfo)
|
|
UDefStrValue := GetUnicodeStrProp(Ancestor, PropInfo)
|
|
else
|
|
else
|
|
|
|
+ begin
|
|
|
|
+ DefValue :=PPropInfo(PropInfo)^.Default;
|
|
SetLength(UDefStrValue, 0);
|
|
SetLength(UDefStrValue, 0);
|
|
|
|
+ end;
|
|
|
|
|
|
- if UStrValue <> UDefStrValue then
|
|
|
|
|
|
+ if (UStrValue<>UDefStrValue) or (not HasAncestor and (DefValue=longint($80000000))) then
|
|
begin
|
|
begin
|
|
Driver.BeginProperty(FPropPath + PPropInfo(PropInfo)^.Name);
|
|
Driver.BeginProperty(FPropPath + PPropInfo(PropInfo)^.Name);
|
|
WriteUnicodeString(UStrValue);
|
|
WriteUnicodeString(UStrValue);
|