Приложения
Приложение А. Функции, константы и структуры RDS
А.3. События модуля автокомпиляции и связанные с ними структуры
А.3.4. События модуля автокомпиляции
А.3.4.1. RDS_COMPM_ATTACHBLOCK – подключение модели к блоку
Первый параметр функции модуля (int CallMode)
Константа RDS_COMPM_ATTACHBLOCK.
Третий параметр функции модуля (void *ExtParam)
Указатель на структуру RDS_COMPBLOCKOPDATA, содержащую идентификатор блока, идентификатор подключаемой к нему модели и причину подключения.
Возвращаемое функцией модуля значение
Не используется, можно возвращать любое значение.
Примечания
Событие RDS_COMPM_ATTACHBLOCK возникает при подключении очередного блока к модели, то есть при включении в параметрах этого блока автоматической компиляции его модели с указанием данного модуля автокомпиляции в качестве обслуживающего модель. Подключение блока к модели происходит при указании имени модели в окне параметров блока, при загрузке схемы с блоками, модели которых компилируются автоматически, при вставке таких блоков из буфера обмена и т.п, то есть во всех случаях, когда RDS устанавливает связь между автокомпилируемой моделью и блоком. Обычно в реакции на это событие параметры блока приводятся в соответствие с моделью, например, блоку назначается указанная в модели структура статических переменных.
В параметре ExtParam при реакции на это событие передается указатель на структуру RDS_COMPBLOCKOPDATA (эта же структура используется и в реакции на событие RDS_COMPM_DETACHBLOCK):
typedef struct { RDS_PCOMPMODELDATA Model; // Данные модели RDS_BHANDLE Block; // Идентификатор блока RDSINT32 AttachReason; // Причина подключения блока // (константа RDS_COMP_AR_*) } RDS_COMPBLOCKOPDATA; typedef RDS_COMPBLOCKOPDATA *RDS_PCOMPBLOCKOPDATA;
Поля структуры
- Model (RDS_PCOMPMODELDATA)
- Указатель на данные модели (RDS_COMPMODELDATA), подключаемой к блоку в реакции на RDS_COMPM_ATTACHBLOCK или отключаемой от него в реакции на RDS_COMPM_DETACHBLOCK.
- Block (RDS_BHANDLE)
- Уникальный идентификатор блока, изменение параметров которого вызвало это событие.
- AttachReason (RDSINT32)
- Причина подключения модели к блоку (не используется в реакции
на событие отключения модели). В этом поле может находиться
одна из следующих констант:
RDS_COMP_AR_LOADSYSTEM Модель подключается к блоку в процессе загрузки всей схемы. RDS_COMP_AR_LOADCLIPBRD Модель подключается к новому блоку, вставляемому из буфера обмена. RDS_COMP_AR_LOADFROMFILE Модель подключается к новому блоку, вставляемому из файла или библиотеки. RDS_COMP_AR_LOADUNDO Имя подключенной к блоку модели изменилось из-за отмены изменений пользователем или возврата ранее отмененных изменений. RDS_COMP_AR_MANUALSET Новая модель задана для блока пользователем в окне параметров или вызовом одной из сервисных функций – например, rdscompSetBlockModel. RDS_COMP_AR_RENAMEMODEL Модель переименована – производится подключение всех обслуживавшихся ей блоков к модели с новым именем. RDS_COMP_AR_UNKNOWN Прочие причины изменения имени автокомпилируемой модели блока.
Пример
Пример реакции модуля на событие RDS_COMPM_ATTACHBLOCK приведен в §3.4 руководства программиста.
См. также
RDS_COMPM_DETACHBLOCK, rdscompSetBlockModel, rdscompAttachDifferentModel, rdscompRenameModel.