Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правильно использовать Canvas? [D7, WinXP]


misyachniy ©   (2006-05-26 16:39:00) 

Использую PaintBox.Canvas для отрисовки на нем измененяя сигнала поступающего в компьютер.
Если создать ситуацию когда мое окно не активно и перекрывается другими окнами, то после активирования моего окна, на тех местах где было перекрытие изображение не востанавливается отображение.
Остается только серый цвет формы.
Как корректно востанавливать изображение?
Или на чем другом нужно рисовать?
Спасибо.


homm   (2006-06-07 17:07:00) [1]


> canvas.pixels[] в цикле:)

=-O Как вспомню, что Pixels в VCL член класса канвы, так передергивает всего.


antonn   (2006-06-07 13:13:00) [2]

RzCoDer ©   (07.06.06 13:11) [13]
canvas.pixels[] в цикле:)


RzCoDer   (2006-06-07 13:11:00) [3]

А мне интересно, как Canvas можно НЕправильно испльзовать?


homm   (2006-06-05 23:47:00) [4]


> Но тем не менее сейчас проверю.

Да Вы правы, но для данного случая вы не упомянули о буферизации, тобищ все равно на аопрос не ответили, тобиш [6] в силе.


homm   (2006-06-05 23:18:00) [5]


>  [10] Vovan#1   (05.06.06 20:55)

Мы об одном и том-же говорим? О выводе именно битмапа на конву с клипом? Уверен что система сама эффективно определит реальную область заполнения и лишние пиксели на невидимость тестировать не будт. Но тем не менее сейчас проверю.


Vovan#1   (2006-06-05 20:55:00) [6]

>Уверен? Ты не думаеш что все равно системе придется еше раз по ClipRgn клипать? Двойная работа получется, а не эффективность.

Уверен. Попробуй реализовать и так, и так, затем сравни скорости.


homm   (2006-06-05 18:26:00) [7]


> Эти приёмы можно эффективнообъединить, например, рисуя
> не весь bitmap, но только часть его, указанную ClipRect.

Уверен? Ты не думаеш что все равно системе придется еше раз по ClipRgn клипать? Двойная работа получется, а не эффективность.


Vovan#1   (2006-06-05 01:10:00) [8]

2 homm:

Из MBo [4]:

>Рисуешь в Bitmap, а его по OnPaint отрисовываешь в PaintBox

Из Vovan#1 [5]

>В OnPaint отрисовывай только то, что указал Canvas.ClipRect (область, требующая перерисовки).

Эти приёмы можно эффективно объединить, например, рисуя не весь bitmap, но только часть его, указанную ClipRect.

2 Rial:

Да, тебе эту технологию надо бы изучить.


Rial   (2006-06-02 03:52:00) [9]


> В OnPaint отрисовывай только то, что указал Canvas.ClipRect
> (область, требующая перерисовки).


Видимо, это какая то новая технология, доселе не изученная :)
Но спать надо было ложиться до этого сообщения ...


> Попробуй метод Refresh для формы запихни его OnActivate


Да  ... это еще лучше.
Хоть бы не писали, не тратили ни свое, ни чужое время.


homm   (2006-06-02 01:07:00) [10]

2 misyachniy


> [3] medved_68 ©   (29.05.06 12:38)
> [5] Vovan#1   (02.06.06 00:22)

Эти 2 поста проигнарируй, человеки не понимают вопроса о котором говорят, истина в [4].


Vovan#1   (2006-06-02 00:22:00) [11]

>Поскольку по скольку мне приходится отрисовывать попиксельно, то скорость вывода довольно низкая. А при получении OnPaint мне нужно будет перерисовывать весь экран?

В OnPaint отрисовывай только то, что указал Canvas.ClipRect (область, требующая перерисовки).


MBo   (2006-05-29 13:31:00) [12]

>Поскольку по скольку мне приходится отрисовывать попиксельно, то скорость вывода довольно низкая. А при получении OnPaint мне нужно будет перерисовывать весь экран?

Рисуешь в Bitmap, а его по OnPaint отрисовываешь в PaintBox


medved_68   (2006-05-29 12:38:00) [13]

Попробуй метод Refresh для формы запихни его OnActivate


misyachniy   (2006-05-29 12:26:00) [14]

Я конечно же понимаю, что краткость сетра таланта ;-)
Поскольку по скольку мне приходится отрисовывать попиксельно, то скорость вывода довольно низкая. А при получении OnPaint мне нужно будет перерисовывать весь экран?
Как-то не правильно помоему.


MBo   (2006-05-26 16:59:00) [15]

рисуй в событии OnPaint


Наверх

Титульная страница Поиск, карта сайта Написать письмо