Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2014.03.23;
Скачать: [xml.tar.bz2];

Вниз

Мигает картинка   Найти похожие ветки 

 
alexdn ©   (2013-05-27 14:06) [0]

Рисование идёт на Tpaintbox событие onpaint, при этом рисование вынесено в отдельную процедуру
DrawPicture(PaintBox1.Canvas);
кода там много, так вот, при перемещении ползунка формы картинка начинает мигать (перерисовываться). Можно ли тут что то сделать, или это уже не хватает времени на перерисовку?
вот картинка - http://s018.radikal.ru/i520/1305/59/9a83a38a644f.png
скрин может не совсем правильно передаёт мигание, но думаю будет понятно, красное окно сверху прорисовывается отдельно, оно активно.


 
sniknik ©   (2013-05-27 14:35) [1]

попробуй включить DoubleBuffered


 
"Добрый Сок"   (2013-05-27 15:08) [2]


> sniknik ©


DoubleBuffered начинается в WinControl, PaintBox1 не наследник WinControl


 
brother ©   (2013-05-27 15:10) [3]

используй canvas формы...


 
sniknik ©   (2013-05-27 15:13) [4]

> DoubleBuffered начинается в WinControl, PaintBox1 не наследник WinControl
у формы/панели на которой лежит.


 
sniknik ©   (2013-05-27 15:19) [5]

кстати можно и по "аналогии"... рисовать на отдельном битмапе, можно в фоне, а не прямо в событии паинта, в паинте только копировать нужное.


 
robt5   (2013-05-27 15:47) [6]


> кстати можно

не можно а нужно, рисовать в памяти


 
alexdn ©   (2013-06-01 16:20) [7]

Вот, попробовал в памяти -
bitmap_mem.width:=PaintBox1.Width;
bitmap_mem.height:=PaintBox1.Height;
DrawPicture(bitmap_mem.Canvas);
//PaintBox1.Canvas.Draw(0, 0, bitmap_mem);
bitblt(bitmap_mem.canvas.Handle,0,0,bitmap_mem.width,bitmap_mem.height,PaintBox1 .Canvas.Handle,0,0,srcCopy);
bitblt видимо не работает.. что не так? если раскрыть Draw, то тогда работает. Но хотелось бы именно через bitblt, говорят она быстрее..


 
MBo ©   (2013-06-01 17:26) [8]

>говорят она быстрее..
преувеличивают

>bitblt видимо не работает
она-то работает, если параметры не путать


 
alexdn ©   (2013-06-01 18:20) [9]

> MBo ©   (01.06.13 17:26) [8]
Это какой это спутан?


 
alexdn ©   (2013-06-01 18:47) [10]

Ну да, bitblt(PaintBox1.canvas.Handle,0,0,PaintBox1.width,PaintBox1.height,bitmap_mem.C anvas.Handle,0,0,srcCopy);
но всё равно, мигать стало не чуть не меньше, если даже не больше, так что рисование в памяти видимо не выход..


 
robt5   (2013-06-01 20:18) [11]


> рисование в памяти видимо не выход..

более чем уверен, что у тебя, как обычно, все происходит через Jo


 
alexdn ©   (2013-06-01 20:42) [12]

Видимо просто сам метод не тянет, попробовал на аналогичной программе поставить задержку на 75 миллисекунд, получилось почти то же самое, т.е DrawPicture(bitmap_mem.Canvas); видимо всё тянет..


 
alexdn ©   (2013-06-01 21:19) [13]

Т.е. выполнение самого рисования длится 75 мил сек, т.е. если его ставить в OnPaint, то заикаться начинает..


 
brother ©   (2013-06-02 08:59) [14]

откажись от PaintBox1 и [3]


 
alexdn ©   (2013-06-02 13:50) [15]

brother © я тебе в аську черкнул, хорошо бы пообщаться.



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

Форум: "Начинающим";
Текущий архив: 2014.03.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.002 c
2-1370032724
Маргарита
2013-06-01 00:38
2014.03.23
проблема с записью в типизированный файл


15-1380876002
брат Птибурдукова
2013-10-04 12:40
2014.03.23
Вопрос по ассоциациям файлов, etc


2-1370624079
stas
2013-06-07 20:54
2014.03.23
Форматирование текста командой format


2-1369649164
alexdn
2013-05-27 14:06
2014.03.23
Мигает картинка


15-1380916731
Туповатый
2013-10-04 23:58
2014.03.23
проприетарный





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский