Главная страница
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.018 c
7-92757
Doctor Snap
2002-07-26 21:18
2002.10.28
Доступ к диску


3-92382
Bishop
2002-10-08 10:28
2002.10.28
обновление записей


14-92715
Aleksandr
2002-10-08 18:02
2002.10.28
Никто QuickReport под Делфи 7 не пытался присобачить?


14-92679
alf_
2002-09-28 16:54
2002.10.28
ответы на мои вопросики


14-92698
Undert
2002-10-07 23:47
2002.10.28
Не упустите возможность быть в первых номерах .....