typename(var)
Или что-то типа того
Вообще и в дельфе падать необязательно
Можно интерфейс прописать через safecall, а можно без него.
Safecall автоматически проверяет результат и создаёт исключение, если он не нулевой (не S_OK)
Я с разными коллекция и типа ADO recordset fields так намучался, не надо мне ошибки кидать при поиске несуществующего поля, просто тихо скажите что его нет :-)
Так что вот, в самом COM исключений Дельфи нет, это внутри RTL их генерит COM-обёртка :)
Насколько я понял, для ole коллекции при "не нашёл" идиоматично возвращать не nil а специальный код ошибки, который дельфа и превращает в исключение в safecall-обертке
Отвечу завтра
VBS: dim o, st set o = CreateObject("CCHMIRuntime.HMIRuntime") set st = o.Tags("@DatasourceNameRT") MsgBox TypeName(st) 'IHMITag set st1 = o.Tags("@DatasourceNameRT_") MsgBox TypeName(st1) 'IHMITag Оба возвращают IHMITag
Обсуждают сегодня