Главная страница
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.028 c
2-1143553760
0bsid
2006-03-28 17:49
2006.04.16
integer в string (не IntToStr)


1-1142344618
vlv
2006-03-14 16:56
2006.04.16
Компонент для создания диаграмм


2-1144052701
serg111111
2006-04-03 12:25
2006.04.16
Помогите разобраться с сервисом


1-1141859568
Кашперук Иван
2006-03-09 02:12
2006.04.16
Запуск приложения при завершении работы Windows


15-1143116438
mb
2006-03-23 15:20
2006.04.16
Окна в HTML