Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 17

Создание и уничтожение обекта TXMLDocument

06.05.2013, 11:05. Показов 5298. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
В конструкторе создаю объект TXMLDocument, при помощи клиентских ф-ий работаю с ним, а в деструкторе пытаюсь его уничтожить, но при вызове деструктора TXMLDocument появляется исключение вида: "Project My.exe raised exception class EAccessViolation with message 'Acces violation at address 004039F8 in modyle 'My.exe'. Read of address BAADF00D'. Process stopped. Use Step or Run to continue".

вот так создаю объект TXMLDocument:

Delphi
1
2
3
4
5
6
7
8
9
constructor TMyType.Create;
begin
  m_xmlDocument := nil;
  m_xmlDocument := TXMLDocument.Create(nil);
  m_xmlDocument.Active := True;
  m_xmlDocument.Version := DEFAULT_VERSION_XML;
  m_xmlDocument.Encoding := DEFAULT_ENCODING_XML;
  m_rootNode := m_xmlDocument.AddChild(TAG_REQUEST);
end;
вот так уничтожаю:
Delphi
1
2
3
4
5
6
7
destructor TMyType.Destroy;
begin
  inherited;
  if nil <> m_xmlDocument then begin
    m_xmlDocument.Destroy;
  end;
end;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.05.2013, 11:05
Ответы с готовыми решениями:

Создание/уничтожение списка
Есть список src='0123456789' grab=list(src) Как сделать так, чтобы каждый элемент списка можно было вывести в отдельную...

TFrame создание\уничтожение
Есть форма, хочу на ней создавать и уничтожать (перед показом другого) фреймы. У фреймов align alClient. Пробовал так: { ФОРМА } ...

Создание и уничтожение объекта
Всем привет! Давно известная проблема &quot;Statement expected but 'PROCEDURE' found&quot; постигла и меня. На Delphi сижу совсем недавно, поэтому...

4
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33421 / 21527 / 8240
Регистрация: 22.10.2011
Сообщений: 36,935
Записей в блоге: 12
06.05.2013, 11:08
Что ж вас так тянет использовать Destroy (твоего класса это тоже касается)? TObject.Destroy предупреждает:
Do not call Destroy directly. Call Free instead. Free verifies that the object reference is not nil before calling Destroy.
Касаемо проблемы с AV:
When TXMLDocument is created without an Owner, it behaves like an interfaced object. That is, when all references to its interface are released, the TXMLDocument instance is automatically freed. When TXMLDocument is created with an Owner, however, it behaves like any other component, and is freed by its Owner.
0
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 17
06.05.2013, 11:24  [ТС]
как я понял вместо destroy надо использовать free, но опять возникает аналогичное исключение.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33421 / 21527 / 8240
Регистрация: 22.10.2011
Сообщений: 36,935
Записей в блоге: 12
06.05.2013, 11:33
Я вторую цитату привел потому что мне делать было нечего? Перевожу: если TXMLDocument создается без Owner-а, то он ведет себя как интерфейсный объект: уничтожается самостоятельно, как только счетчик ссылок на него достигает нуля. Не надо вызывать его метод Free. А еще лучше использовать переменную m_xmlDocument типа IXMLDocument, а не TXMLDocument, чтобы даже мысли не возникало, что его надо удалять: интерфейс, все-таки.
1
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 17
06.05.2013, 12:38  [ТС]
спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.05.2013, 12:38
Помогаю со студенческими работами здесь

создание-уничтожение окон
Вообщем проблема следующая: Создаю окно, работаю с ним, закрываю, создаю снова... бабах и тут ошибка. &quot;Невозможно создать оконный...

Создание и уничтожение процессов
Нужна программа на C#, выполняющая функции создания и уничтожения процесса notepad.exe. Создание процесса нужно осуществлять с открытием...

Создание, Очистка, Уничтожение Форм
Всем снова Здравствуйте! Спасибо Всем кто ответил в предыдущих моих темах! Снова Возникли вопросы: 1. Как сделать так чтобы по...

Создание/уничтожение форм в рантайме
Добрый день. Каким способом можно убить форму и освободить её память? С созданием на лету проблем нет. Всё работает. Но как ни...

Формы - последовательное создание и уничтожение
Подскажите. Есть программа для работы с БД с двумя формами (форма входа и главная форма. Я делаю основным окном форму входа в проекте, при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru