Есть конструкция:
while (MainForm.DirTree.Selected.GetPrevSibling<>nil) and (not MainForm.DirTree.Selected.getPrevSibling.HasChildren) do
MainForm.DirTree.Selected.MoveTo(MainForm.DirTree.Selected.getPrevSibling,naInsert);
DitrTree – компонент типа TTreeView; MainForm – собственно, форма программы.
Эта конструкция обеспечивает перенос узла структуры (этот узел в данный момент Selected), имеющего дочерние узлы, вверх по списку узлов если еще не достигнут верх текущего уровня дерева и у предыдущего узла нет дочерних узлов. То есть по ходу работы формируется дерево, в котором узлы, имеющие дочерние узлы, должны располагаться вверху своего уровня, а затем – узлы без подчиненных узлов.
В Delphi 7 это работает прекрасно.
Lazarus 0.9.8 beta говорит, что “Project raised exeption class 'External: SIGSEGV'”, открывает treeview.inc и ставит маркер на функции:
function TTreeNode.GetPrevSibling: TTreeNode;
begin
Result:=FPrevBrother;
end;
Я не могу понять, почему не работает...
Исходники treeview.inc смотрел, но толком разобраться в них пока не удалось...

Буду благодарен за любые идеи...
P.S. 0.9.10 мне пока не доступен
