TPoint *MouseDownPoint;
bool Moving=false;
void__fastcall TForm1::FrameMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer)
{
SetCapture(((TFrame*)Sender)->Handle);
Moving=true;
MouseDownPoint->x= X;
MouseDownPoint->Y= Y;
}
void__fastcall TForm1::FrameMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer)
{
if (Moving==true)
{
((TFrame*)Sender)->Left=((TFrame*)Sender)->Left - (MouseDownPoint->x - X);
((TFrame*)Sender)->Top=((TFrame*)Sender)->Top - (MouseDownPoint->y - Y);
}
}
void__fastcall TForm1::FrameMouseUp(Sender: TObject; Button:
TMouseButton; Shift: TShiftState; X, Y: Integer)
{
if (Moving==true)
{
ReleaseCapture();
Moving= false;
}
}
Перетягивание фреймов по форме
Хозяин и родитель - главная форма.
Код:
Все фреймы с картинками, вложенными в них находятся на главной форме.
При перетаскивании мышью любого фрейма (пробовал использовать вместо фрейма форму) и прохождении его поверх других фреймов на них остается на короткой время многократное изображение
фрейма, который сейчас перетаскиваю.
Как от этого избавиться? Как убрать этот шлейф.
Пробовал варианты типа
releaseCapture();
((TFrame*)Sender)->Perform(......); и так далее.
Эти варианты работают великолепно, следов шлейфа на остальных фреймах нет и не бывает, но в этом случае я не получаю обработку события FrameMouseMove, с которого у меня идет вызов специальнызх функций.
Кто нибудь - помогите советом!!!!!!!!!! Погибаю !!!!!!!!!