![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мелькание картинки при обновлении
И. Павел © (2006-05-23 22:30:00)Здравствуйте. В программе нужно вывести изображение, которое с определённой скоростью будет двигаться по экрану. Я пытался сделать это через канву и просто меняя left и top для image. При большой скорости перерисовки изображение начинает мелькать. Посоветуйте, пожалуйста, как можно это избежать.
И. Павел (2006-05-25 22:35:00) [1]Заработало! Использование двух канв помогло, картинка теперь не мелькает. Огромное спасибо.
Loginov Dmitry (2006-05-24 09:39:00) [2]Turbid © (24.05.06 1:37) [5]
Создай еще одну канву, например компонент PaintBox, рисуй на нем, а на основной копируй.
Думаю, что имелось ввиду рисовать на канве TBitmap, а затем копировать на Image примерно так:
Image.Canvas.Draw(0, 0, Bitmap);
Turbid (2006-05-24 01:37:00) [3]Самый простой вариант - используй двойную буфризацию, как подсказал Virgo_Style:
Создай еще одну канву, например компонент PaintBox, рисуй на нем, а на основной копируй.
Как вариант еще можно синхронизовать с вертикальной разверткой, но это сложней...
И. Павел (2006-05-23 23:30:00) [4]Да, в обработчике OnTimer я просто изменяю координаты изображения и вызываю метод Refresh.
Loginov Dmitry (2006-05-23 22:57:00) [5]И. Павел (23.05.06 22:30)
просто меняя left и top для image. При большой скорости перерисовки изображение начинает мелькать.
А что, вы сами его перерисовываете?
Virgo_Style (2006-05-23 22:53:00) [6]попробуйте DoubleBuffered
Gydvin (2006-05-23 22:35:00) [7]http://www.delphimaster.ru/cgi-bin/forum.pl?id=1147794206&n=18