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

Вниз

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

 
pirat ©   (2002-10-17 19:45) [0]

У меня есть основная форма и отдельный поток. В нем я создаю Bitmap и на нем же рисую. После отрисовки каждой 10 линии, я копирую эти 10 линии CopyRect в PaintBox на основной форме. Все бы хорошо,но на PaintBox в некоторых местах появляются белые точки. Причем чем активнее двигаешь мышкой, тем больше точек при перерисовке. Повторное копирование не помогает. Точки каждый раз появляются в разных местах. Во время рисования, я кстати проверяю захвачем ли Canvas, и если нет - то захватываю.
Но вот толку от этого... :((
Как от этого (если возможно вообще) избавится?????
Как заблокировать Canvas для всех кроме себя?
Кстати вместо CopyRect уже попробовал использовать просто попиксельный перенос - результат тот же.


 
Андрей Прокофьев ©   (2002-10-17 19:47) [1]

TCanvas.Lock

Prevents other threads from drawing on the canvas.

procedure Lock;

Description

Call Lock in a multithreaded application to prevent other threads from drawing on the canvas. Lock prevents other cooperating threads in the application from executing until the Unlock method is called. Nested calls to Lock increment the LockCount property so that the canvas is not unlocked until the last lock is released.

In multi-threaded applications that use Lock to protect a canvas, all calls that use the canvas must be protected by a call to Lock. Any thread that does not lock the canvas before using it will introduce potential bugs.

Because Lock prevents other threads from executing, it can adversely affect performance. Do not call Lock unless there is a danger that another thread might interfere with drawing on the canvas.


 
pirat ©   (2002-10-17 21:24) [2]

это я уже делал ! :((


 
MBo ©   (2002-10-17 21:38) [3]

странный эффект.
Рисование в методе потока, вызываемого с synchronize, не помогает?


 
Rouse_ ©   (2002-10-17 21:44) [4]

Покажи как ты делаешь (сам поток и его вызов)

Желаю успехов


 
pirat ©   (2002-10-17 23:27) [5]

спасибо за помощь, ребята!
куда надо было запихивать syncronize так и осталось для меня загадкой. :(
В итоге мне все это надоело и я переписал этот кусок на API - чем примитивнее - тем надежней.Все. После этого все глюки исчезли :))



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
1-92548
777
2002-10-15 23:01
2002.10.28
глюк.


7-92757
Doctor Snap
2002-07-26 21:18
2002.10.28
Доступ к диску


1-92524
zeratul_pr
2002-10-14 18:26
2002.10.28
Как изменить в Memo цвет фона выделеного текста?


14-92651
AFrolov
2002-10-03 15:37
2002.10.28
Обоснование разработки программы


14-92726
Игорь Шевченко
2002-10-08 10:10
2002.10.28
Alx2, с днем рождения!