Показать сообщение отдельно
  #3  
Старый 09.11.2017, 20:28
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Оффтоп на ЗЫ: Зачем кричать-то, итак хорошо всё слышно -)
Цитата:
Сообщение от hunn74
...Код меняет знак только первого элемента...
Да собсно у вас так и заложено: в обработчике жима третьей кнопки первым делом очищается полностью содержимоё TreeView и затем туда вставляется "обработанный" узел, а на момент выполнения Vyvod он единственный

Бегать нужно в цикле, лучше рекурсией, примерно так (обход всех ответвлений елемента)
Код:
function TDBTreeView.RecurseChilds(node: TTreeNode): double;
begin
while node <> nil do begin
   if node.HasChildren then
      Result := RecurseChilds(node.GetFirstChild);
   Result := Result + GetResultForNode(node));
   node := node.GetNextSibling;
end;
end;

function TDBTreeView.GetResult(curnode: TTreeNode;): double;
begin
Result := 0;
if curnode = nil then Exit;
Result := RecurseChilds(curnode.GetFirstChild);
end;
drkb
Ответить с цитированием