From 3d2de82656e3a89933d0b9edc14c71057b919d6d Mon Sep 17 00:00:00 2001 From: michael Date: Sat, 16 Feb 2019 08:50:13 +0000 Subject: [PATCH] * Fix bug ID #34854 git-svn-id: trunk@41332 - --- packages/fcl-xml/src/xmlconf.pp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/fcl-xml/src/xmlconf.pp b/packages/fcl-xml/src/xmlconf.pp index 3e84cd0227..31b2f2fead 100644 --- a/packages/fcl-xml/src/xmlconf.pp +++ b/packages/fcl-xml/src/xmlconf.pp @@ -166,6 +166,7 @@ Var begin F:=TFileStream.Create(AFileName,fmOpenread or fmShareDenyWrite); try + FFileName := ''; ReadXMLFile(Doc, AFilename); FFileName:=AFileName; finally @@ -398,11 +399,14 @@ procedure TXMLConfig.DoSetFilename(const AFilename: String; ForceReload: Boolean begin if (not ForceReload) and (FFilename = AFilename) then exit; - + Flush; FreeAndNil(Doc); if csLoading in ComponentState then + begin + FFilename := AFilename; exit; + end; if FileExists(AFilename) and not FStartEmpty then LoadFromFile(AFilename) else if not Assigned(Doc) then @@ -425,6 +429,8 @@ begin if AValue <> FRootName then begin FRootName := AValue; + if not (ComponentState * [csLoading,csDesigning] = []) then + Exit; Root := Doc.DocumentElement; Cfg := Doc.CreateElement(AValue); while Assigned(Root.FirstChild) do @@ -475,7 +481,7 @@ var begin for I := Length(FPathStack)-1 downto 0 do FPathStack[I] := ''; - FElement := nil; + FElement := nil; FPathDirty := False; FPathCount := 0; end;