Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.15;
Скачать: CL | DM;

Вниз

AccesViolation в XML   Найти похожие ветки 

 
mfender ©   (2006-09-25 13:29) [0]

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

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



<DOMAIN>
 <OID>55</OID>



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


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

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

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

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


 
mfender ©   (2006-09-25 13:32) [2]

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


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


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

XMLNode.DOMNode.childNodes.length


 
Reindeer Moss Eater ©   (2006-09-25 13:34) [3]

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


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

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


 
mfender ©   (2006-09-25 13:42) [5]


> 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:46) [6]

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


 
mfender ©   (2006-09-25 14:12) [7]

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

     
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;

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



Страницы: 1 вся ветка

Текущий архив: 2006.10.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.068 c
1-1157349763
lightix
2006-09-04 10:02
2006.10.15
Выводить сообщения из приложения поверх всех окон


2-1158926772
did_elena
2006-09-22 16:06
2006.10.15
вычисление даты


15-1159162480
Ega23
2006-09-25 09:34
2006.10.15
С Днём рождения! 24 сентября


15-1158931825
stone
2006-09-22 17:30
2006.10.15
Премия за глупость


15-1159306510
Axis_of_Evil
2006-09-27 01:35
2006.10.15
Boolean