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

Описание пользователя

Глава 3. Использование стандартных модулей автокомпиляции

§3.7. Краткий перечень вводимых в модель описаний и реакций на события

§3.7.2. Создание и уничтожение блока

§3.7.2.3. Добавление блока пользователем

Это событие возникает после добавления блока в подсистему пользователем из библиотеки, из файла или из буфера обмена. При добавлении блока в схему не из-за действий пользователя (например, если блок добавлен по команде от другого блока, или при загрузке блока в составе вставляемой из буфера обмена подсистемы) событие не возникает. В реакции на это событие можно, например, спросить что-нибудь у пользователя и, в зависимости от его ответа, изменить параметры блока.

Реакция на событие добавления блока вводится на вкладке «события» левой панели редактора модели: раздел «создание и уничтожение», подраздел «добавление блока пользователем». Модуль автокомпиляции создает для этой реакции в классе блока функцию с именем rdsbcppManualInsert, внутрь которой вставляется текст программы, введенной пользователем. Функция имеет следующий вид:

  // Actions after user adds a new block
  void rdsbcppBlockClass::rdsbcppManualInsert( InsertData)
  {
     … пользовательский текст реакции … 
  }

В функцию передается единственный параметр InsertData, представляющий собой указатель на структуру описания события RDS_MANUALINSERTDATA. В файлах заголовков RDS эта структура описана следующим образом:

  typedef struct {
    int Reason;   // Способ добавления (константа RDS_LS_*)
     Single;  // Добавлен только один блок
  } ;
  typedef  *;

Поля структуры имеют следующий смысл:

Reason (int)
Одна из двух стандартных констант, указывающих на способ добавления блока в схему: RDS_LS_LOADCLIPBRD, если блок вставлен из буфера обмена, и RDS_LS_LOADFROMFILE, если он добавлен из библиотеки или загружен из файла.
Single (BOOL)
TRUE, если в схему вставлен только один блок, и FALSE, если вставлено сразу несколько блоков (например, группа блоков из буфера обмена).

При написании моделей блоков без использования модуля автокомпиляции событию добавления блока пользователем соответствует константа RDS RDS_BFM_MANUALINSERT.


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