Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

Мелькание картинки при обновлении   Найти похожие ветки 

 
И. Павел   (2006-05-23 22:30) [0]

Здравствуйте. В программе нужно вывести изображение, которое с определённой скоростью будет двигаться по экрану. Я пытался сделать это через канву и просто меняя left и top для image. При большой скорости перерисовки изображение начинает мелькать. Посоветуйте, пожалуйста, как можно это избежать.


 
Gydvin ©   (2006-05-23 22:35) [1]

http://delphimaster.net/view/2-1147794206/


 
Virgo_Style ©   (2006-05-23 22:53) [2]

попробуйте DoubleBuffered


 
Loginov Dmitry ©   (2006-05-23 22:57) [3]

И. Павел   (23.05.06 22:30)
просто меняя left и top для image. При большой скорости перерисовки изображение начинает мелькать.


А что, вы сами его перерисовываете?


 
И. Павел   (2006-05-23 23:30) [4]

Да, в обработчике OnTimer я просто изменяю координаты изображения и вызываю метод Refresh.


 
Turbid ©   (2006-05-24 01:37) [5]

Самый простой вариант - используй двойную буфризацию, как подсказал Virgo_Style:

Создай еще одну канву, например компонент PaintBox, рисуй на нем, а на основной копируй.

Как вариант еще можно синхронизовать с вертикальной разверткой, но это сложней...


 
Loginov Dmitry ©   (2006-05-24 09:39) [6]

Turbid ©   (24.05.06 1:37) [5]
Создай еще одну канву, например компонент PaintBox, рисуй на нем, а на основной копируй.


Думаю, что имелось ввиду рисовать на канве TBitmap, а затем копировать на Image примерно так:
Image.Canvas.Draw(0, 0, Bitmap);


 
И. Павел   (2006-05-25 22:35) [7]

Заработало! Использование двух канв помогло, картинка теперь не мелькает. Огромное спасибо.



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.04 c
6-1137494084
Volf_555
2006-01-17 13:34
2006.06.11
Как автоматически из моей программы входить в почтовик?


6-1139390426
Lynx_rus
2006-02-08 12:20
2006.06.11
Выбор Dialap- соеденения


15-1146942869
dj0n
2006-05-06 23:14
2006.06.11
fastreport


2-1148671048
Std
2006-05-26 23:17
2006.06.11
Время выполнения процедуры


15-1148013686
Карелин Артем
2006-05-19 08:41
2006.06.11
Слово Доллар хуже мата!