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

Описания RDS

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

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

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

§3.7.9. Внешний вид блока

§3.7.9.2. Проверка изменения размера блока

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

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

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

#### §3.7.9. Внешний вид блока

##### §3.7.9.2. Проверка изменения размера блока

Это событие возникает в блоке, который программно рисует свое изображение, а также у блоков, изображаемых прямоугольником с текстом, в процессе изменения размеров блока пользователем, когда последний перетаскивает мышью маркеры выделения блока. Каждое движение курсора мыши в процессе этого перетаскивания порождает одно такое событие. Реакция на него чаще всего используется для вмешательства модели в изменение размера: если модель в реакции на это событие скорректирует поля newWidth и newHeight структуры RDS_RESIZEDATA, которая передается в реакцию, это немедленно отразится на размере прямоугольника, который пользователь видит при перетаскивании маркеров выделения. Пример модели, реагирующей на это событие, приведен в §3.6.5.

Текст реакции на событие проверки допустимости изменения размера вводится на вкладке «события» левой панели редактора модели: раздел «внешний вид блока», подраздел «проверка изменения размера». В классе блока для нее создается функция с именем rdsbcppResizing следующего вида:

      // Block size is changing
      void rdsbcppBlockClass::rdsbcppResizing(
                                RDS_PRESIZEDATA ResizeData,int &Result)
      {
         … пользовательский текст реакции …
      }

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