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

Вниз

работа с XML в потоке   Найти похожие ветки 

 
Bolodya   (2009-01-31 18:23) [0]

Здравствуйте уважаемые форумчане. Возник небольшой вопрос, без решения которого дальнейшая разработка программы невозможна.. Буду признателен за помощь, это мое первое приложение, которое работает с потоками

Метод Execute моего потока:

procedure PopConnectThread.Execute;
var
 m:   TIdMessage;
 mc,p: integer;
 pop : TPOP3Send;
 origmess:String ;
 popXML:TXMLDocument;
begin
 CoInitialize(nil);
 SetName;
 if LoadConectionParameters then
  begin
    MainForm.ReadyFoUpdate:= false;
    pop := TPOP3Send.Create;
    popXML := TXMLDocument.Create(nil);

    pop.TargetHost :=Host;
    pop.TargetPort:=port;
    pop.Username:=Username;
    pop.Password:=Password;

    if pop.Login then
    begin
      pop.Stat;
      if pop.StatCount>0 then
      for mc:=1 to pop.statCount do
      begin

        pop.Retr(mc);
        origmess := StringSystem62toUnicodeString(DeleteSpaces(pop.FullResult.Text));
        insert ("<?xml version="1.0" encoding ="windows-1251"?>",origmess,1);

        popXML.LoadFromStream(TStringStream.Create(origmess));
        popXML.Active := true;

        beep(1000,1000);
        if popXML.DocumentElement.ChildNodes["xstatex"].Text = "01" then state01(StringSystem62toUnicodeString(DeleteSpaces(origmess)));

       
      end;
    end;

   pop.Logout;
   pop.Free;
   popXML.free;

 end;
 CoUnInitialize;
 MainForm.ReadyFoUpdate := true;

end;


После того как прозвучал сигнал, на -
if popXML.DocumentElement.ChildNodes["xstatex"].Text = "01"
вылетает исключительная ситуация..
Может есть какая-то особенность работы с XML в потоках?


 
Сергей М. ©   (2009-01-31 18:44) [1]


> вылетает исключительная ситуация


Наверно, прямо так и говорит - "Я, исключительная ситуация, вылетаю" ?
Или это великий секрет, кто и куда там у тебя вылетает ?
Равно как и великий секрет, работает ли тот же код в основном потоке ?


 
Bolodya   (2009-01-31 19:00) [2]

Текст ошибки -
Project raised exception class EAccessViolation with message "Access violation at address 00000000. Read of address 00000000. Process stoped

В основном потоке код работает


 
Сергей М. ©   (2009-01-31 19:15) [3]

И в основном этот код тоже не работает, не надо вводить людей в заблуждение.
В основном у тебя работает другой код, в котором объект класса TXMLDocument имеет владельца.

http://dn.codegear.com/article/29241


 
Сергей М. ©   (2009-01-31 19:16) [4]

http://www.sql.ru/forum/actualthread.aspx?tid=111696


 
Сергей М. ©   (2009-01-31 19:16) [5]


> есть какая-то особенность работы с XML в потоках?


Нет.


 
Bolodya   (2009-01-31 20:01) [6]

Сергей М., большое спасибо за помощь, проблема была действительно в том, что у объекта не было родителя.



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

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

Наверх




Память: 0.48 MB
Время: 0.027 c
15-1232633470
Городской Шаман
2009-01-22 17:11
2009.03.29
Вопрос по газовым проточным водонагревателям(колонка).


2-1234173614
Iriss
2009-02-09 13:00
2009.03.29
TObjectList.Assign


15-1232335816
Slider007
2009-01-19 06:30
2009.03.29
С днем рождения ! 19 января 2009 понедельник


15-1233122782
Труп Васи Доброго
2009-01-28 09:06
2009.03.29
Windows 7 первые впечатления


2-1233776721
trsteep
2009-02-04 22:45
2009.03.29
XML vs TreeView