Прочтите документацию. :-)
Есть два способа подключиться к серверу ActiveX: во время компиляции (раннее связывание) или во время выполнения (позднее связывание). Там [статья на MSDN более подробно объясняется.
Раннее связывание - это то, что используется при использовании типизированных переменных (например, при использовании TWordApplication
или TExcelApplication
из палитры компонентов). Библиотека типов используется для определения поддерживаемых типов и интерфейсов, а методы можно найти с помощью DispInterface
из v-таблицы; затем компилятор может проверить, существуют ли функции, проверить на наличие опечаток и тому подобное, а также выяснить, что доступно для завершения кода и анализа кода).
Доступ к серверу ActiveX в качестве варианта (как показывает фрагмент кода) - late binding
. Компилятору ничего не известно до тех пор, пока код не будет на самом деле выполнен, после чего предпринимаются попытки вызвать методы через интерфейс IDispatch
, и в этот момент он либо завершается успешно, либо терпит неудачу. Поскольку компилятор ничего не знает о том, что может содержать ваш вариант, во время разработки или компиляции невозможно узнать, какие методы и типы доступны.
Поскольку ваш код использует позднее связывание, нет никакого способа узнать, какие свойства могут быть доступны, кроме чтения документации (или, конечно, методом проб и ошибок, что на самом деле не вариант). (Другой альтернативой является использование раннего связывания, если для сервера ActiveX доступна библиотека типов, после чего вы прекращаете использовать вариант и переключаетесь на интерфейс, который компилятор может использовать для определения того, что вам доступно.)
person
Ken White
schedule
20.02.2013