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