Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

AccesViolation в XML [D7]


mfender ©   (2006-09-25 13:29:00) 

Здравия желаю!

Вот интересная история: процедура раскладывает ноды из XML в TTreeView. Самое примечательное, что эта процедура отлично работает, как метод в Form1. Но выкидывает AccessViolation, когда работает как метод TMyTreeView. Спотыкается вот на этом месте:



<DOMAIN>
 <OID>55</OID>



Т.е., она споткнулась на первом же Integer'е в документе. Но почему же она нормально работает отдельно от TMyTreeView?


mfender   (2006-09-25 14:12:00) [1]

Что-то странное творится.
У меня вверху есть проверка:

     
if XMLNode.NodeName = NODE_DOMAIN then
begin
   NodeText := IXMLDOMAINType(XMLNode).Title;
end;

IXMLDOMAINType- это интерфейс к этому XML-узлу.
А вот стоило написать

if XMLNode.NodeName = NODE_DOMAIN then
begin
showmessage(XMLNode.ChildValues['Title']);
   NodeText := XMLNode.ChildValues['Title'];
end;

Всё стало работать... Странно всё это...


Reindeer Moss Eater   (2006-09-25 13:46:00) [2]

Значит нет самого XMLNode или еще чего.
В любом случае твоя ошибка - использование неактуального указателя на объект.


mfender   (2006-09-25 13:42:00) [3]


> Reindeer Moss Eater ©   (25.09.06 13:34) [3]
> отладчик мама на работу унесла?
>
> Reindeer Moss Eater ©   (25.09.06 13:36) [4]
> Нету нода с индексом I вот и все дела.

Отладчик показывает, что всё там есть. Но у XMLNode.ChildNodes.Count значение в этом месте - AccessViolation...


Reindeer Moss Eater   (2006-09-25 13:36:00) [4]

Нету нода с индексом I вот и все дела.


Reindeer Moss Eater   (2006-09-25 13:34:00) [5]

отладчик мама на работу унесла?


mfender   (2006-09-25 13:32:00) [6]

Да, забыл ещё вот что. Она спотыкается вот на этом коде:


{Тут она рекурсивно сама себя вызывает}
DOM2Tree(XMLNode.ChildNodes.Nodes[I], NewTreeNode);


но нормально реагирует на

XMLNode.DOMNode.childNodes.length


Dmitrij_K   (2006-09-25 13:31:00) [7]

Тебе тоже не хварать.

> Но почему же она нормально работает отдельно от TMyTreeView?

Я думаю, что ошибка в программе.


Наверх

Титульная страница Поиск, карта сайта Написать письмо