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

Вниз

TXMLDocument. Вылетает ошибка при завершении программы   Найти похожие ветки 

 
ionn   (2005-02-20 22:45) [0]

Здрасьте,

Написал процедуру, она читает ХМЛ файл,
в начале поставил
TXMLDocument.Active:= true
...
считываю
...
Active:=false; //<-Так вот на этой строчке прога вылетает, я её убрал, теперь прога вылетает при закрытии.

Как избавиться? И вообще я правильно использую этот Актив?


 
GanibalLector ©   (2005-02-20 22:51) [1]

>TXMLDocument
Это ШО такое компонент?
По сабжу: в nil его или в Unassigned попробуй


 
Eraser ©   (2005-02-20 22:53) [2]

ionn
Вылетает ошибка при завершении программы


Услуги телепатов не на этом сайте!
Приводи название и код ошибки, и желательно участок кода.


 
ionn   (2005-02-20 22:58) [3]

Это компонент для работы с XML файлами.

Ошибка:
Exception EAccessViolation in module Project1.exe at 00006594.
Access violation at addres 00406594 in module Project1.exe. Read of address 00000008.


 
Eraser ©   (2005-02-20 23:00) [4]

ionn
Уже что-то. Обращение по несуществующему адресу.
Теперь попробуй нажать F9 и посмотреть в каком участке кода остановиться отладчик во время этой ошибки.
Ты вообще знаком с отладчиком? )


 
ionn   (2005-02-20 23:05) [5]

В файле проекта, на строке
end.
вываливается.


 
Eraser ©   (2005-02-20 23:06) [6]

Понятно! Попробуй в форме в событии OnClose вписать
XMLDocument.Free;
не забудь Action:=caFree;


 
Eraser ©   (2005-02-20 23:07) [7]

А лучше приведи код.


 
ionn   (2005-02-20 23:08) [8]

после этого по F7 проходит еще по
finalization модулей GDIOBJ и DirectDraw


 
Eraser ©   (2005-02-20 23:12) [9]

ionn
после этого


Чего ЭТОГО?

finalization модулей GDIOBJ и DirectDraw

тут собака и порылась скорее всего...


 
ionn   (2005-02-20 23:12) [10]

Фрии не помагает

procedure cSystem.OpenConfig(name:string);
 var n,conf,node,nn,vr:IXMLNode;
     i,j:integer;
     setup:cSetup;
     s:^rStageParam;
     pr:^real; pi:^integer;      
 begin
      Form1.XML.Active:=true;
      n:=Form1.XML.DocumentElement;
      for i:=0 to n.ChildNodes.Count-1 do
      begin
           if n.ChildNodes[i].Attributes["name"]=name then
           begin
                conf:=n.ChildNodes[i];
                //AdvSetup
                node:=conf.ChildNodes["AdvSetup"];
                cAdvSetup(sp_setup[current]).s_okno:=YN(node.ChildValues["okno"]);
                cAdvSetup(sp_setup[current]).s_resu:=YN(node.ChildValues["resu"]);
                cAdvSetup(sp_setup[current]).s_dial:=YN(node.ChildValues["dial"]);
                //Meneger
                node:=conf.ChildNodes["Meneger"];
                meneger.Demo:=YN(node.ChildValues["demo"]);
                meneger.started:=YN(node.ChildValues["started"]);
                meneger.created:=YN(node.ChildValues["created"]);
                meneger.show_progress:=YN(node.ChildValues["progress"]);
             ....
               break;
           end;
      end;
      // - тута раньше было Active:=false
 end;

Если эту процедуру не вызывать, то всё нормально


 
ionn   (2005-02-20 23:13) [11]

ЭТОГО - это сообщение об ошибке


 
Eraser ©   (2005-02-20 23:16) [12]

ionn

А где ресурсы освобождаются? Типа n := null;


 
ionn   (2005-02-20 23:18) [13]

А они в деструкторе не должны освобождаться? который вывзывается самостоятельно при завершении программы или выходе из области видимости.
Или у меня не правильные предстваления о освобождении ресурсов?


 
Eraser ©   (2005-02-20 23:21) [14]

ionn

Честно говоря я с интерфейсами не часто сталкивался, но думаю дело всётаки не в них...

А они в деструкторе не должны освобождаться?

Именно из за этого и ошибка!
Советую протрэйсить модуль этого компонента.



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

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

Наверх




Память: 0.5 MB
Время: 0.037 c
4-1106554241
tradakad
2005-01-24 11:10
2005.03.06
замена черного цвета прозрачным на карте бит


3-1107500734
Mishenka
2005-02-04 10:05
2005.03.06
Глючит DbRichEdit


4-1106658123
Aleksandr.
2005-01-25 16:02
2005.03.06
Как правильно заполнить PCopyDataStruct?


14-1108480019
Luzer
2005-02-15 18:06
2005.03.06
Как сделать локалку из модемного соединения?


3-1107790740
td
2005-02-07 18:39
2005.03.06
как организовать запрос?