Текущий раздел:

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.3. События модуля автокомпиляции и связанные с ними структуры

А.3.4. События модуля автокомпиляции

А.3.4.1. RDS_COMPM_ATTACHBLOCK – подключение модели к блоку

# Приложения

## Приложение А. Функции, константы и структуры 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.