Делаю программулину, и тут такая проблема с этим компонентом, не пойму как он работает
procedure TForm1.TTreeVievResize;
var
lengthLA,l,i,i1,l1,i2,l2,i3,l3:integer;
s:string;
spShem:TStringList;
spFormuls:TStringList;
root : TTreeNode;
node : TTreeNode;
begin
TreeView1.Items.Clear;
if Length(ListArr[0])>0 then begin
l:=Length(ListArr[0])-1;
lengthLA:=Length(ListArr);
for i:=0 to l do
begin
spShem:=TStringList.Create;
spShem.Assign(ListArr[0,i]);
s:=spShem[0];
root:=TreeView1.Items.Add(nil,s);// Treeview1.Items.Add (nil,'Root Node');
root.ImageIndex:=0;
spShem.Free;
if Length(ListArr)>1 then begin
l3:=length(ListArr[1]);
if l3>0 then begin
if i<l3 then begin
spFormuls:=TStringList.Create;//формулы
spFormuls.Assign(ListArr[1,i]);
if spFormuls.count>0 then begin
l1:=spFormuls.count-1;
for i1:=0 to l1 do begin
s:=spFormuls[i1];
//node := TreeView1.Items.Item[i];//
node :=Treeview1.Items.AddChild(root,s);
l2:=length(ArrayOfArrayRec[i,i1])-1;/////////////////////////////////////////
// if l2>-1 then begin
for i2:=0 to l2 do begin
VarRec:=ArrayOfArrayRec[i,i1,i2];
if VarRec.link=7 then begin
//// node := TreeView1.Items.Item[i1/i2];
root:=Treeview1.Items.AddChild(node,VarRec.element);
end;
end;
end;
spFormuls.Free;
end;
end;
end;
end;
end;
end;
end;
в общем первым и вторым узлом вставляются элементы из одного массива, а к ним дочерними с другого (первые два элемента это в общем как-бы разделы и формулы), а самыми низшими по иерархии - это переменные из формул (там уже всё парсер сделал, разложил). и такая беда, что когда я после формулы добавляю переменные с массива, то следующие формулы из другого массива пишутся к ним дочерними. Я уже и так крутил, и этак - белеберда получается, не могу понять как это сделать.
В общем мне надо, чтобы после переменных следующая формула достраивалась дочерним элементом к разделу, а она пристраивается дочерним к последней переменной. Беда.
Подскажите.
Меня этот компонент очень сильно тормозит в работе. Заранее благодарен.