procedure TFormFM.NavigationTreeView(aTree: TTreeView; const aData: string);
var
Root, Child, SubChild, Item: TTreeViewItem;
StrList: TStringList;
i, c: integer;
Str, ParseStr: string;
begin
StrList := TStringList.Create;
StrList.Text := aData;
aTree.BeginUpdate;
aTree.Clear;
for i := 0 to StrList.Count - 1 do
begin
Str := StrList.Strings[i];
ParseStr := Parse('">', '</option>', Str);
if Pos('a', ParseStr) > 0 then
ParseStr := StringReplace(ParseStr, 'a', 'a', [rfReplaceAll]);
Item := TTreeViewItem.Create(nil);
Item.StyleLookup := 'treeviewitemstyle';
Item.Text := trim(StringReplace(ParseStr, '-', '', [rfReplaceAll]));
Item.HelpKeyword := Parse('<option value="', '">', Str);
Item.ClipChildren := false;
if Pos('-', ParseStr) = 0 then
begin
aTree.AddObject(Item);
Root := Item;
end
else if ParseStr.StartsWith('-- ') then
begin
Root.AddObject(Item);
Child := Item;
end
else if ParseStr.StartsWith('---- ') then
begin
Child.AddObject(Item);
SubChild := Item;
end
else if ParseStr.StartsWith('------ ') then
begin
SubChild.AddObject(Item);
end;
end;
aTree.EndUpdate;
aTree.RealignContent;
FreeAndNil(StrList);
end;
вот решение если кто столкнется с таким же багом
спасибо Ярославу!