Определяет специфические характеристики и значения для Свойств и Методов типа PEMName_COMATTRIB. Описываемые в данном разделе Особенности и возможности относятся только к определениям классов типа OLEPUBLIC, которые содержат дополнительную информацию: описание, атрибуты "только-чтение" и другие характеристики Свойств и Методов, которые вы планируете использовать в соответствующих библиотеках типов COM, серверах Автоматизации.
![]() |
---|
В отличие от методов типа Access и Assign, рассматриваемые характеристики PEMName_COMATTRIB свойств объекта автоматически устанавливают характеристику "hidden" создаваемым Свойствам и, тем самым, эти Свойства являются недоступными в программном коде Visual FoxPro. Данные характеристики предназначены строго для использования в Visual FoxPro в процессе проектирования и создания библиотек типа COM. |
[PEMName_COMATTRIB = nFlags | DIMENSION PEMName_COMATTRIB[numElements] |
Параметры
- [ PEMName_COMATTRIB = nFlags| DIMENSION PEMName_COMATTRIB[numElements]
-
Определяет значение параметра nFlags для Свойства или Метода типа PEMName, или использования команды DIMENSION для создания внутреннего Свойства в виде Массива типа PEMName в библиотеке типов. Когда создается Массив, numElements определяет номер соответствующего элемента, не более 5.
В следующей таблице описываются характеристики указанных элементов этого массива.
Элемент COMATTRIB Краткое Описание Тип 1
Флаги атрибутов.
Число
2
Строка Описания.
Строка
3
Применение Заглавных букв.
Строка
4
Тип Свойства.
Строка
5
Количество параметров.
Обратите внимание
Если вы указываете меньшее количество параметров, чем задано при определении Метода, то остальные параметры объявляются как опциональные (необязательные).
Число
Примечание
При задании неверного значения или типа элемента в массиве PEMName_COMATTRIB, система Visual FoxPro генерирует Ошибку. Пустое значение для конкретного элемента предполагает значение "по-умолчанию" данного элемента.
- nFlags
-
Определяет флаги атрибутов для Свойства или Метода PEMName, которые описываются в Библиотеке Типов (Type Library). В следующей таблице описываются допустимые значения флагов и их описания.
Значение
nFlags#DEFINE Краткое описание 0x1 (1)
COMATTRIB_RESTRICTED
Свойство или Метод не должны быть доступны из Макро-языков (скриптов JS,VS). Данный флаг предназначен для функций системного уровня или других функций, которые не отображаются в системных Браузерах, осуществляющих навигацию в COM-классах.
Атрибут COMATTRIB_RESTRICTED означает, что на уровне Макро-программ рассматриваемые программные Элементы (Свойства и Методы) должны быть недоступны. Аналогичные Компоненты, созданные с атрибутом _HIDDEN являются доступными с помощью соответствующего Браузера Visual Basic. Основным различием является то, что указанные Элементы не могут быть связаны с внешними компонентами.
0x40 (64)
COMATTRIB_HIDDEN
Свойство или Метод не должны быть доступны пользователю, однако могут быть привязаны (могут обрабатываться) внешними компонентами.
Атрибут COMATTRIB_HIDDEN означает, что Свойство или Метод не отображаются в соответствующем Браузере. Данный атрибут обычно используется для исключения рассматриваемого Элемента из Объектной модели, но данный элемент может использоваться в Классе в соответствующих фрагментах программного Кода.
0x400 (1024)
COMATTRIB_NONBROWSABLE
Свойство или Метод является доступным в Браузере Объектов, но является недоступным в Браузере Свойств.
Атрибут COMATTRIB _NONBROWSABLE означает, что рассматриваемый Элемент не доступен в Браузере Свойств. Данный атрибут обычно используется в тех случаях, когда при возникновении ошибки необходимо видеть значение конкретного Свойства, которое отображается в Браузере Свойств. Процессы Раннего и Позднего Связывания налагают особые требования по доступу к программным Элементам. Клиент раннего связывания не в состоянии записать значение в Свойство типа "только-для-чтения", или прочитать значение из свойства типа "только-для-записи", поскольку данные свойства будут отсутствовать в соответствующей таблице VTable. Клиент позднего связывания может обратиться к соответствующим элементам PropertyGet или PropertyPut, объявленным как PEMName.
0x100000
COMATTRIB_READONLY
Свойство только "для чтения". Применяется только для Свойств. Эквивалентно PropertyGet.
Обратите Внимание
Указание атрибутов COMATTRIB_READONLY и COMATTRIB_WRITEONLY означает недоступность данного Свойства (не читать и не писать).
0x200000
COMATTRIB_WRITEONLY
Свойство только "для записи". Применяется только для Свойств. Эквивалентно PropertyLet.
Обратите Внимание
Указание атрибутов COMATTRIB_READONLY и COMATTRIB_WRITEONLY означает недоступность данного Свойства (не читать и не писать).
- PEMName_COMATTRIB[2] = cHelpString
-
Определяет строку текста, которая характеризует в библиотеке типов создаваемое Свойство PEMName. Для Методов используется соответствующая секция-опция HELPSTRING cHelpString.
- PEMName_COMATTRIB[3] = cPropertyCapitalization
-
Определяет, что имя создаваемого элемента должно быть представлено в библиотеке типов символами в верхнем регистре. Сохраняются все символы в верхнем регистре. Если данный параметр опущен, Visual FoxPro записывает имя свойства в верхнем регистре.
- PEMName_COMATTRIB[4] = cPropertyType
-
Определяет название типа создаваемого Свойства (string, numeric...), для Методов используется секция-опция AS Type. Данный параметр применяется только для Свойств Класса COM.
- PEMName_COMATTRIB[5] = nOptionalParms]]
-
Определяет количество опциональных (необязательных) параметров, передаваемых в Метод. Например, если данный элемент имеет значение = 2 для метода, у которого определено всего 5 параметров, то последние 3 параметра являются опциональными (необязательными). Применяется только для Методов.
Для Клиентов "позднего связывания", по-умолчанию, для необязательных параметров присваиваются значения, = False (.F.), а функция PCOUNT( ) возвращает фактическое количество переданных параметров в вызываемый Метод. Для Клиентов "раннего связывания", по-умолчанию, для опциональных параметров присваивается значение Empty -пустая строка (""), а функция PCOUNT( ) всегда возвращает общее количество описанных параметров в Методе (а не количество фактически переданных параметров).
Комментарии
В следующем далее фрагменте программного Кода представлена общая Структура команды DEFINE CLASS:
![]() |
|
---|---|
DEFINE CLASS Clause |
Дополнительную информацию о полном синтаксисе смотрите в разделе DEFINE CLASS, команда. Уточняющую информацию о деталях использования различных параметров команды DEFINE CLASS смотрите в следующих пунктах:
Пример
В представленном далее примере иллюстрируется определение массива в Библиотеке Типов с помощью рассматриваемой Секции DIMENSION PEMName_COMATTRIB:
![]() |
|
---|---|
#INCLUDE foxpro.h |
Однако, если Вы хотите установить только элемент nFlags, Вы не должны создавать массив:
![]() |
|
---|---|
#INCLUDE foxpro.h |