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

Canvas   Найти похожие ветки 

← →
TUser ©   (2003-11-17 17:33) [0]

Есть поток, который рисует что-то на канве. Код у него такой
i:=0;
while true do begin
inc (i);
if i=10000000 then begin
i:=0;
// Битмап заполняет всю форму целиком
form1.Canvas.Draw(0,0,Form1.BitMap);

// Потом что-то рисуем

end;
end;

Вроде бы при каждой новой прорисовке старый рисунок должен удаляться. так и происходит, но если над формой поместить указатель мыши, то после этого удаление старого рисунка не происходит. В чем тут дело и как лечить?


← →
pasha_golub ©   (2003-11-17 17:42) [1]

Вообще-то скажу вам что для этого надо сначала делать вот так
form1.Canvas.Lock;
///draw
form1.Canvas.UnLock;


← →
TUser ©   (2003-11-17 17:56) [2]

Нет, не помогает. Тот же глюк остается.


← →
PVitaliy ©   (2003-11-17 18:08) [3]


> form1.Canvas.Draw(0,0,Form1.BitMap);


Насколько я знаю обращение к обектам ВЦЛ из неВЦЛ потока должно быть через процедуру Synchronize


← →
Семен Сорокин ©   (2003-11-17 18:11) [4]

2TUser
создай битмап нужных размеров, рисуй на нем, а потом CopyRect"ом копируй на форму (в Synhronize), только глупое занятие это - делать отрисовку VCL-объекта в потоке.


← →
TUser ©   (2003-11-17 18:37) [5]

Да, точно. Через Synchronize все работает. Всем спасибо.



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

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



Память: 0.45 MB
Время: 0.014 c
6-90020
SergP
2003-09-28 13:23
2003.11.27
Сокеты... ошибка 11001 и пр. Что с ними делать?


14-90109
Sergey_Masloff
2003-11-06 10:52
2003.11.27
Книжная ярмарка на просп. Мира - распродажа


3-89785
ruslan_as
2003-11-06 16:40
2003.11.27
Как вывести отчет из 90 записей на 1 бланк


3-89791
sokohigh
2003-11-06 17:12
2003.11.27
Нужен улучшенный DBLookupComboBox...


7-90136
ИЛЕЙ
2003-09-17 13:40
2003.11.27
Реагирование на завершение работы




   Наверх