Описание пользователя
Глава 3. Использование стандартных модулей автокомпиляции
§3.7. Краткий перечень вводимых в модель описаний и реакций на события
§3.7.2. Создание и уничтожение блока
§3.7.2.4. Удаление блока пользователем
Это событие возникает непосредственно перед удалением блока из схемы в результате действий пользователя: если пользователь в режиме редактирования удаляет данный блок, группу выделенных блоков, в которую входит данный, или подсистему, внутри которой данный блок находится. При удалении блока не из-за действий пользователя (например, если память очищается перед загрузкой новой схемы) событие не возникает. Реакция на это событие может использоваться, например, для информирования пользователя о возможных последствиях удаления важных для работы блоков. Отменить удаление блока при помощи этой реакции нельзя.
Реакция на событие удаления блока вводится на вкладке «» левой панели редактора модели: раздел «», подраздел «». В классе блока для нее создается функция с именем rdsbcppManualDelete с введенным пользователем текстом программы внутри:
// Actions before the block is deleted by the user void rdsbcppBlockClass::rdsbcppManualDelete(RDS_PMANUALDELETEDATA DeleteData) { … пользовательский текст реакции … }
В функцию передается параметр DeleteData, представляющий собой указатель на структуру описания события RDS_MANUALDELETEDATA:
typedef struct {
BOOL Single; // Удаляется один блок
BOOL WithSys; // Удаляется блок внутри удаляемой подсистемы
} RDS_MANUALDELETEDATA;
typedef RDS_MANUALDELETEDATA *RDS_PMANUALDELETEDATA;
Поля структуры имеют следующий смысл:
- Single (BOOL)
- TRUE, если данный блок – единственный удаляемый, и FALSE, если удаляется группа выделенных блоков, в которую входит данный.
- WithSys (BOOL)
- TRUE, если пользователь удаляет подсистему, внутри которой (на любом уровне вложенности) находится этот блок, и FALSE, если этот блок непосредственно входит в удаляемую группу выделенных блоков.
При написании моделей блоков без использования модуля автокомпиляции событию удаления блока пользователем соответствует константа RDS RDS_BFM_MANUALDELETE.