BEERZONE |
Отправлено: 12.06.2006, 21:53 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 21
|
В процессе выполнения программы перемещаю Image по форме мышью, а эта ##### моргает. Как с этим бороться? |
|
Konstantine |
Отправлено: 13.06.2006, 08:14 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
возможно если у Вас загружен сжатый рисунок (GIF, JPEG) — загружать как BMP...
а как перемещаете?
|
|
BEERZONE |
Отправлено: 13.06.2006, 21:05 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 21
|
Загружаю из .res файла Image1->Picture->Bitmap->LoadFromResourceName((int)HInstance,"myImage"); Перемещаю может быть глупо, но как могу:-)
On MouseDown(...)
{
// Узнаю координаты нажатия мыши на Image
Xcl=X;
Ycl=Y;
}
//-----------------------------
On MouseMove (...)
{
Image1->Top=Image1->Top+Y-Ycl;
Image1->Left=Image1->Left+X-Xcl;
} |
|
ShibaOn |
Отправлено: 01.07.2006, 10:08 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 37
|
На OnCreate родителю Image ставить свойство DoubleBuffered
CODE |
Image1->Parent->DoubleBuffered = true;
|
|
|
Doga |
Отправлено: 03.07.2006, 17:23 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
Может быть поможет Application->ProcessMessages() в событии OnMouseMove (...), сразу после изменения положения картинки.
А положение картинки лучше менять за один раз, а не за два, с помощью вроде как SetWindowPlacement(...) — так будет меньше перерисовок... Если конечно картинка лежит на какой нить панели, и именно эта панелька перемещается. Иначе это не пройдёт т.к. ТImage не имеет Handle. А пройдет ТImage->SetBounds(...);
Отредактировано Doga — 03/07/2006, 19:01
|
|