Показать сообщение отдельно
Старый 16.05.2008, 11:00   #1  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Исправление глюка в стандартном поиске
В поиске часто замечал, что результаты поиска задваиваются а то и затраиваются.
Стал искать почему.
На форме SysAotFind в методе searchContextNode написано что ищем либо методом searchTree который просто бежит по узлам, либо nextApplObject (если выбираем ветку AOT) который работает быстрее и бежит по таблице UtilElements.
Но так как одна строка кода может быть представлена в двух слоях, то и получаются задвоения.
Как исправил в ClassDeclaration формы добавил
TreeNode lastTreeNode;
А в метод searchNode() вверху метода написал
X++:
    if(lastTreeNode)
    {
        if(_treeNode.xml() == lastTreeNode.xml())
            return;
    }
    lastTreeNode = _treeNode;
Вложения
Тип файла: xpo SysAotFind.xpo (190.3 Кб, 578 просмотров)