Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

RE(2) Разное поведение Variant в D5 и D6 [D5, D6, Win2k]


Balu ©   (2002-12-10 11:43:00) 

При работе с компонентом XML (microsoft.xmldom) на D5 код работал (правильно) (т.е возвращал Empty) :
if VarIsEmpty(obj_xml.selectSingleNode(" Тут чего попало")) then // т.е узла нет (мне это и надо :-))

В D6 этот код стал возвращать не Empty и не NULL (в трассировщике $00000000) и соответственно в IFне заходит.

Проблема победилась через импортирование библиотеки XML и приведение типов:
if (IDispatch(obj_xml) AS IXMLDOMDocument).selectSingleNode(" Тут чего попало")) = nil then // т.е узла нет (мне это и надо :-) )

Не подскажет ли многоуважаемый ALL, в чем тут проблема??


Digitman   (2002-12-10 11:55:00) [1]

>не Empty и не NULL

так а что конкретно возвращает-то ?

ну ты прочитай значение TVarData(MyVariantTypeVariable).VType в какую-нибудь врем.переменную да и проанализируй его ! Исх.код Variant-структуры ыедь открыт) ... Если не varEmpty и не varNull, то - что тогда ? Подозреваю, что varDispatch или varPointer


VaS   (2002-12-10 11:54:00) [2]

Это лишнее IDispatch(obj_xml) AS IXMLDOMDocument.
Запрашивай сразу IXMLDOMDocument после CreateComObject() без всяких CreateOleObject().


Наверх

Титульная страница Поиск, карта сайта Написать письмо