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

Описания RDS

Приложения

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

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

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

А.3.4.17. RDS_COMPM_SAVEBLOCK – сохранение блока

# Приложения

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

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

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

##### А.3.4.17. RDS_COMPM_SAVEBLOCK – сохранение блока

Первый параметр функции модуля (int CallMode)

Константа RDS_COMPM_SAVEBLOCK.

Третий параметр функции модуля (void *ExtParam)

Указатель на структуру RDS_COMPSAVEBLOCKDATA, содержащую указатель на данные модели, идентификатор блока и другие параметры события.

Возвращаемое функцией модуля значение

Не используется, можно возвращать любое значение.

Примечания

Событие RDS_COMPM_SAVEBLOCK возникает при сохранении каждого блока, которому назначена автоматически компилируемая модель, независимо от причины сохранения блока: сохранение в отдельный файл, сохранение в составе схемы, копирование в буфер обмена и т.д. В реакции на него функция модуля может, при необходимости, изменить имя модели этого блока, присвоив полю ChangeName структуры RDS_COMPSAVEBLOCKDATA, указатель на которую передан в параметре ExtParam, значение TRUE, и вызвав сервисную функцию rdscompAttachDifferentModel. Например, если модели хранятся в отдельных файлах, реакцию на событие RDS_COMPM_SAVEBLOCK можно использовать для замены полного пути к файлу модели на путь относительно файла схемы – это упростит перенос схемы в другую папку, поскольку при этом уже не нужно будет корректировать имена моделей.

В параметре ExtParam при реакции на это событие передается указатель на структуру RDS_COMPSAVEBLOCKDATA:

      typedef struct {
        RDS_PCOMPMODELDATA Model; // Данные модели
        RDS_BHANDLE Block;        // Сохраняемый блок
        RDSINT32 SaveAction;      // Причина сохранения (RDS_LS_SAVE*)
        BOOL ChangeName;          // Возврат: изменить имя модели
      } RDS_COMPSAVEBLOCKDATA;
      typedef RDS_COMPSAVEBLOCKDATA *RDS_PCOMPSAVEBLOCKDATA;

Поля структуры

Model(RDS_PCOMPMODELDATA)
  Указатель на структуру данных модели RDS_COMPMODELDATA, которая связана с сохраняемым блоком.
Block(RDS_BHANDLE)
  Уникальный идентификатор сохраняемого блока.
SaveAction(RDSINT32)
  Одна из стандартных констант, указывающих на причину сохранения блока (эти же константы возвращаются при вызове сервисной функции rdsGetSystemInt с параметром RDS_GSISAVELOADACTION):

  RDS_LS_SAVECONTENT | Запись параметров блока при сохранении схемы.
  RDS_LS_SAVEROOT | Запись параметров корневой подсистемы при сохранении схемы.
  RDS_LS_SAVECLIPBRD | Копирование блока в буфер обмена.
  RDS_LS_SAVETOFILE | Запись одиночного блока в файл или в библиотеку.
  RDS_LS_SAVEUNDO | Запись параметров блока в буфер отмены изменений.
  RDS_LS_SAVEAUTOCOMP | Запись параметров блока перед автоматической компиляцией его модели (после компиляции они будут загружены обратно).
  RDS_LS_SAVETAGGED | Запись блока при программной поблочной записи схемы (специальный режим, используемый в сложных моделях блоков и в модулях расширения).

ChangeName(BOOL)
  Возвращаемый признак изменения имени модели. Исходно в этом поле записано значение FALSE. Если имя модели для сохраняемого блока необходимо изменить, функция модуля должна присвоить этому полю значение TRUE и вызвать сервисную функцию rdscompAttachDifferentModel, передав в ее параметрах новое имя модели и, при необходимости, ее новое альтернативное имя.

См. также

RDS_COMPM_SAVESYSTEM, RDS_COMPMODELDATA, RDS_GSISAVELOADACTION, rdscompAttachDifferentModel.