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

Описания RDS

Приложения

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

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

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

А.2.7.4. RDS_BFM_MOVED – перемещение блока

# Приложения

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

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

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

##### А.2.7.4. RDS_BFM_MOVED – перемещение блока

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

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

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

Константа RDS_BFM_MOVED.

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

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

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

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

Примечания

Событие RDS_BFM_MOVED возникает при любом изменении положения блока на рабочем поле подсистемы: при его перетаскивании пользователем, при задании его координат, при вызове сервисной функции для перемещения блока и т.п. Реакция на это событие может применяться, например, для синхронного перемещения группы блоков при перемещении одного из них. В параметре ExtParam передается указатель на структуру RDS_MOVEDATA:

      typedef struct {
        RDSINT32 MoveReason; // Причина перемещения
        RDSINT32 OldX,OldY;  // Старые координаты точки привязки
        RDSINT32 NewX,NewY;  // Новые координаты точки привязки
      } RDS_MOVEDATA;
      typedef RDS_MOVEDATA *RDS_PMOVEDATA;

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

MoveReason(RDSINT32)
  Одна из стандартных констант, указывающих на причину изменения координат блока:

  RDS_MR_SET | Координаты блока установлены непосредственно: заданы пользователем в окне параметров, установлены сервисной функцией rdsMoveBlock и т.п.
  RDS_MR_DRAG | Блок «перетащен» мышью.
  RDS_MR_KEYBOARD | Выделенный в окне подсистемы блок перемещен нажатием курсорных клавиш.
  RDS_MR_UNDOREDO | Ранее выполненное перемещение блока отменено или повторено пользователем.

OldX, OldY(RDSINT32)
  Координаты точки привязки блока до перемещения в масштабе 100%. Для блоков с векторной картинкой точка привязки – это положение начала координат этой картинки, для программно рисуемых блоков и блоков, изображаемых прямоугольником с текстом, это координаты левого верхнего угла изображения. Горизонтальная ось координат направлена вправо, вертикальная – вниз, начало координат – левый верхний угол рабочего поля.
NewX, NewY(RDSINT32)
  Координаты точки привязки блока после перемещения в масштабе 100%.

См. также

rdsMoveBlock, rdsSetBlockRect.