Навигация:
<< >> Оглавление Указатель

Приложения

Приложение А. Функции, константы и структуры 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 {
     Model; // Данные модели
     Block;        // Сохраняемый блок
     SaveAction;      // Причина сохранения (RDS_LS_SAVE*)
     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.


<< >> Оглавление Указатель