Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.029 c
15-1148138367
ArtemESC
2006-05-20 19:19
2006.06.11
Извините за глупый вопрос по ASM


2-1148464871
webpauk
2006-05-24 14:01
2006.06.11
Установить курсор


15-1147868546
syte_ser78
2006-05-17 16:22
2006.06.11
зачем нужна клавиша scroll lock?


3-1145365336
ttt_111
2006-04-18 17:02
2006.06.11
Поиск как в 1С.


15-1148047749
tesseract
2006-05-19 18:09
2006.06.11
Outlook , ну чего тут можно сказать :-)




   Наверх