Показать сообщение отдельно
  #10  
Старый 25.05.2013, 08:17
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от kaktusad
Freeman, вот что получилось
...
Изображение рисую на Пэинт боксе с помощью StretchDraw и если его перерисовывать при каждом движении мышки, то будут почти одни полосы.

Ну, для особо извращенцев могу посоветовать вариант с запоминанием фона. Т.е. сначала отрисовываешь запомненный ранее фон (твоего размера, 40х40, если не ошибаюсь), потом меняешь координаты, запоминаешь по новым координатам фон, потом отрисовываешь свой квадрат. Ну и сначала при следующем перемещении мышы.

А вообще, вывод из буфферного битмапа на канву PaintBox занимает микроскопическое время, при включенном DoubleBuffered ничего не моргает. Только там есть маленький фокус - фон стирать не надо, надо сделать так, что бы картинка выводилась из буфера за одну операцию без стирания фона. Проверял на 8-мегапиксельных картинках. В твоем случае нужно будет 2 буфера. В первом лежит орининальная картинка, во втором ты подготавливаешь картинку для вывода и потом ее отрисовываешь на канве PaintBox.
Ответить с цитированием