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

Описания RDS

Приложения

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

А.2. События блока и связанные с ними описания

А.2.7. События, связанные с изменением схемы пользователем

А.2.7.1. RDS_BFM_MANUALDELETE – удаление блока пользователем

# Приложения

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

### А.2. События блока и связанные с ними описания

#### А.2.7. События, связанные с изменением схемы пользователем

Эти события возникают при перемещении блоков, изменении их размеров, добавлении и удалении блоков в схему и т.п. Хотя по смыслу они и близки к событиям пользовательского интерфейса, они выделены в отдельную группу, поскольку реакции на них требуются гораздо реже.

##### А.2.7.1. RDS_BFM_MANUALDELETE – удаление блока пользователем

Поток, в котором вызывается функция модели

Главный поток RDS.

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

Константа RDS_BFM_MANUALDELETE.

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

Указатель на структуру описания события RDS_MANUALDELETEDATA.

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

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

Примечания

Событие RDS_BFM_MANUALDELETE возникает непосредственно перед тем, как данный блок или содержащая его подсистема будут удалены из схемы пользователем. При удалении блока сервисной функцией или при очистке памяти перед загрузкой новой схемы это событие не возникает. Реакция на это событие может использоваться, например, для информирования пользователя о возможных последствиях удаления важных для работы блоков (см. §2.12.8 руководства программиста). Реагируя на событие RDS_BFM_MANUALDELETE, модель не может отменить удаление блока – он будет удален в любом случае.

В параметре ExtParam передается указатель на структуру RDS_MANUALDELETEDATA, описывающую событие:

      typedef struct {
        BOOL Single;  // Удаляется один блок
        BOOL WithSys; // Удаляется блок внутри удаляемой подсистемы
      } RDS_MANUALDELETEDATA;
      typedef RDS_MANUALDELETEDATA *RDS_PMANUALDELETEDATA;

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

Single(BOOL)
  TRUE, если данный блок – единственный удаляемый, и FALSE, если удаляется группа блоков, в которую входит данный.
WithSys(BOOL)
  TRUE, если пользователь удаляет подсистему, внутри которой (на любом уровне вложенности) находится этот блок, и FALSE, если этот блок удаляется непосредственно (пользователь выделил данный блок или группу из блоков, в которую вошел данный, и выбрал пункт меню «удалить»).

См. также

RDS_BFM_CLEANUP.