Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];

Вниз

работа с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.049 c
2-1234168182
Влади мир
2009-02-09 11:29
2009.03.29
StringGrid


4-1206779666
kalexi
2008-03-29 11:34
2009.03.29
Как узнать с какого по какой адрес занимает процесс в системе?


15-1232696519
desc
2009-01-23 10:41
2009.03.29
Склеить видео файлы


2-1233825648
АБВ
2009-02-05 12:20
2009.03.29
TNotifyEvent;


2-1233220237
workbench
2009-01-29 12:10
2009.03.29
активизация окна





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский