Вниз
Скачать: CL | DM;

Как правильно использовать Canvas?   Найти похожие ветки 

← →
misyachniy ©   (2006-05-26 16:39) [0]

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


← →
MBo ©   (2006-05-26 16:59) [1]

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


← →
misyachniy ©   (2006-05-29 12:26) [2]

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


← →
medved_68 ©   (2006-05-29 12:38) [3]

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


← →
MBo ©   (2006-05-29 13:31) [4]

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

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


← →
Vovan#1   (2006-06-02 00:22) [5]

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

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


← →
homm ©   (2006-06-02 01:07) [6]

2 misyachniy


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

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


← →
Rial ©   (2006-06-02 03:52) [7]


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


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


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


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


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

2 homm:

Из MBo [4]:

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

Из Vovan#1 [5]

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

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

2 Rial:

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


← →
homm ©   (2006-06-05 18:26) [9]


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

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


← →
Vovan#1   (2006-06-05 20:55) [10]

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

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


← →
homm ©   (2006-06-05 23:18) [11]


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

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


← →
homm ©   (2006-06-05 23:47) [12]


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

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


← →
RzCoDer ©   (2006-06-07 13:11) [13]

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


← →
antonn ©   (2006-06-07 13:13) [14]

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


← →
homm ©   (2006-06-07 17:07) [15]


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

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



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.032 c
15-1168765710
ﺷﺴ
2007-01-14 12:08
2007.02.04
Тест - Как постить в журнал (6)?


15-1168725774
ProgRAMmer Dimonych
2007-01-14 01:02
2007.02.04
Подскажите, как на PHP+SendMail подделать адрес получателя


8-1150035064
Whitevova
2006-06-11 18:11
2007.02.04
Микрофон. И всё с ним связанное.


2-1168994214
M1sT
2007-01-17 03:36
2007.02.04
Поиск по файлам, типа *.xls, *.mdb, *.dbf


15-1168276557
аматор
2007-01-08 20:15
2007.02.04
При открытии, или создании нового проекта TurboDelphi ....




   Наверх