Главная страница
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.036 c
14-1108400408
Knight
2005-02-14 20:00
2005.03.06
32-битный цвет под WinXP и Win2003...


1-1108613768
Dyusha
2005-02-17 07:16
2005.03.06
FAT 16


14-1108617817
Anonim
2005-02-17 08:23
2005.03.06
Подътягивание


6-1103348192
Atomic2004
2004-12-18 08:36
2005.03.06
MailSlot


6-1103762014
Zelius
2004-12-23 03:33
2005.03.06
Долго обрабатывается запрос