Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.6. Операции с блоками и связями
А.5.6.8. rdsDeleteBlock – удаление блока
Функция rdsDeleteBlock удаляет из схемы блок, идентификатор которого передан в ее параметрах.
void RDSCALL rdsDeleteBlock( RDS_BHANDLE Block // Удаляемый блок );
Тип указателя на эту функцию
RDS_VBh
Параметр
- Block (RDS_BHANDLE)
- Идентификатор блока, который необходимо удалить из схемы.
Примечания
Эта функция удаляет блок Block из схемы, если это возможно. Блок не может быть удален, если:
- его моделью в данный момент открыто модальное окно;
- это подсистема, моделью одного из внутренних блоков которой открыто модальное окно;
- это корневая подсистема.
Удаление блока, которому принадлежит открытое в данный момент модальное окно, запрещено, так как это может привести к выгрузке DLL с его моделью, в которой, вероятнее всего, находится и функция открытого окна. Поскольку окно останется открытым и будет продолжать вызывать свою функцию в ответ на системные события, это может привести к ошибкам. Корневая подсистема не может быть удалена в принципе, поскольку это приведет к удалению из памяти всей загруженной схемы.
Вызов функции rdsDeleteBlock не всегда удаляет блок немедленно: если в данный момент идет расчет, блок будет удален только по окончании очередного такта. Если модель пытается удалить свой собственный блок, он тоже не будет удален немедленно: RDS дождется завершения функции его модели, и только тогда удалит этот блок.
Пример
Пример использования функции rdsDeleteBlock приведен в §2.16.2 руководства программиста.
См. также