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

Вниз

Быстро выполнение FillRect   Найти похожие ветки 

 
Алик   (2006-03-06 18:50) [0]

Добрый день,

Подскажите плиз как наиболее быстро выполить процедуру FillRect, при прорисовке прямоугольника на TCanvas.

Требуется зарисовать мозаику из большого количества квадратиков на TCanvas.


 
MBo ©   (2006-03-06 18:56) [1]

FillRect выполняется быстро.


 
Алик   (2006-03-06 19:05) [2]

Дело в том, что TCanvas у меня находится в PaintBox, а PaintBox в TScrollBox.
И когда я прокручиваю полосы прокрутки ScrollBox моя мозаика из нескольких тысячей квадратиков заметно тормозит при прорисовке методом  FillRect.

Можно ли тут что-нибудь сделать? Может быть как то через DirectDraw?


 
wicked ©   (2006-03-06 20:04) [3]


> Можно ли тут что-нибудь сделать? Может быть как то через
> DirectDraw?
а немного подумать?.... забить "квадратиками" какой-нибудь Bitmap и выводить его скопом, когда нужно.... еще более дешевое и сердитое решение - поставить TImage вместо PaintBox-а....


 
Алик   (2006-03-06 21:03) [4]

Да этот вариант хороший я рисовал Bitmap а затем копировал на Canvas на событие OnPaint. Скорость была хорошая, прорисовка совершенно не тормозила.

Но у меня возникла другя проблема, размер моего Bitmap мог доходить до десятков тысяч пиксел в длину и ширину, а если брать 8 или 16 битную палитру, то вся оперативка а следом проц уходили в глубокий нокаут на секунд 20 - 30. То есть потребляется порядка 100 мегабайт оперативки.
К тому же иногда приходится открывать несколько подобных карт одновременно.

Поэтому я отказался от Bitmapa а впоролся в скорость прорисовки моих квадратиков.

Где выигрываешь в другом проигрываешь и наоборот.

Так что мне можно сделать????


 
wicked ©   (2006-03-06 21:14) [5]


> Где выигрываешь в другом проигрываешь и наоборот.
>
> Так что мне можно сделать????
определять, какие квадратики будет видно, и рисовать только их....
просто подозреваю, что сейчас это не так и рисуются все....


 
Алик   (2006-03-12 15:11) [6]

А как это сделать, чтобы рисовалась только видимая часть Canvasa при передвижении рычажка ScrollBox ?



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

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

Наверх




Память: 0.48 MB
Время: 0.041 c
2-1143818873
Golik
2006-03-31 19:27
2006.04.16
DBGrid и Fast Report 3


2-1144061350
serg111111
2006-04-03 14:49
2006.04.16
Приложение в треере


15-1142018122
Костя
2006-03-10 22:15
2006.04.16
Архивация


2-1144048007
Mozaika_81
2006-04-03 11:06
2006.04.16
Как работать с адресом?


11-1124895800
shalex
2005-08-24 19:03
2006.04.16
Не могу установить компоненты от 5-й версии