* Applied patch from Bug ID #25048, fixing write of TPersistent (TCollection)

git-svn-id: trunk@26720 -
This commit is contained in:
michael 2014-02-08 11:16:12 +00:00
parent f59a2272d9
commit ddda356ee8

View File

@ -1110,7 +1110,20 @@ begin
end; // length Name>0
end; //(ObjValue <> AncestorObj)
end // ObjValue.InheritsFrom(TComponent)
else if ObjValue.InheritsFrom(TCollection) then
else
begin
SavedAncestor := Ancestor;
SavedPropPath := FPropPath;
try
FPropPath := FPropPath + PPropInfo(PropInfo)^.Name + '.';
if HasAncestor then
Ancestor := TPersistent(GetObjectProp(Ancestor, PropInfo));
WriteProperties(TPersistent(ObjValue));
finally
Ancestor := SavedAncestor;
FPropPath := SavedPropPath;
end;
if ObjValue.InheritsFrom(TCollection) then
begin
if (not HasAncestor) or (not CollectionsEqual(TCollection(ObjValue),
TCollection(GetObjectProp(Ancestor, PropInfo)),root,rootancestor)) then
@ -1126,19 +1139,6 @@ begin
end;
end;
end // Tcollection
else
begin
SavedAncestor := Ancestor;
SavedPropPath := FPropPath;
try
FPropPath := FPropPath + PPropInfo(PropInfo)^.Name + '.';
if HasAncestor then
Ancestor := TPersistent(GetObjectProp(Ancestor, PropInfo));
WriteProperties(TPersistent(ObjValue));
finally
Ancestor := SavedAncestor;
FPropPath := SavedPropPath;
end;
end;
end; // Inheritsfrom(TPersistent)
end;