![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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().