Перейти к содержанию
Fire Monkey от А до Я
  • 0

Перетаскивание компонентов в ран тайм.


Axbor

Вопрос

Когда я перетаскивал компонентов было проблема когда мышка двигалось очень быстро компонент которая я передвигал отставал от мышки. Что бы избавиться от этого нужно AutoCapture этого компонента сделать true. Тогда пока мышка не отпущена фокус остается на этом компоненте. Пример:

Добавляем в форму один компонент (в моем случае Rectangle).

В конструкторе формы запишем:

__fastcall TMainForm::TMainForm(TComponent* Owner)
	: TForm(Owner)
{
	Rectangle1->AutoCapture = true;
        isDown = false;
}
//---------------------------------------------------------------------------

Потом запишем на OnMouseDown, OnMouseMove, OnMouseUp запишем как обычно.

void __fastcall TMainForm::Rectangle1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          float X, float Y)
{
	oldX = X;
	oldY = Y;
	isDown = true;
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::Rectangle1MouseMove(TObject *Sender, TShiftState Shift, float X,
          float Y)
{
	if(!isDown)
		return;
	Rectangle1->Postion->Y = Rectangle1->Postion->Y + Y - oldY;
	Rectangle1->Postion->X = Rectangle1->Postion->X + X - oldX;
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::RectangleMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
          float X, float Y)
{
	isDown = false;
}
//---------------------------------------------------------------------------

Вот и всё.

Таким же образом можно перетаскивать форму и т.д,

Изменено пользователем Axbor
Ссылка на комментарий

Рекомендуемые сообщения

Ответов пока нет

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...