Поиск сообщества
Показаны результаты для тегов 'move controls'.
Найдено: 1 результат
-
Когда я перетаскивал компонентов было проблема когда мышка двигалось очень быстро компонент которая я передвигал отставал от мышки. Что бы избавиться от этого нужно 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; } //--------------------------------------------------------------------------- Вот и всё. Таким же образом можно перетаскивать форму и т.д,