Главная страница
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.035 c
15-1143032206
sBeysenov
2006-03-22 15:56
2006.04.16
Неполная версия Delphi


2-1144099736
ctudent
2006-04-04 01:28
2006.04.16
TreeView+База данных


2-1143613019
Lera
2006-03-29 10:16
2006.04.16
cообщения windows


2-1144178873
d3777
2006-04-04 23:27
2006.04.16
Много кнопок - одна процедура


15-1143466171
Ega23
2006-03-27 17:29
2006.04.16
It s a Long Way to Tipperary