Когда я перетаскивал компонентов было проблема когда мышка двигалось очень быстро компонент которая я передвигал отставал от мышки. Что бы избавиться от этого нужно AutoCapture этого компонента сделать true. Тогда пока мышка не отпущена фокус остается на этом компоненте. Пример:
Добавляем в форму один компонент (в моем случае Rectangle).
Вопрос
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; } //---------------------------------------------------------------------------Вот и всё.
Таким же образом можно перетаскивать форму и т.д,
Изменено пользователем Axbor0 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.