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

Вниз

можна ли рисовать на битмапе в TThread   Найти похожие ветки 

 
delphiForever   (2007-09-06 13:48) [0]

в OnCreate создаю глобальный TBitMap, на котором рисую в потоке, после завершения рисования оптравляю SendMessage компоненту который отрисовывает уже готовую картинку. Отрисовка анимации происходит в интервале до 100 мс.
Рано или поздно, битмар  куда-то навсегда теряется и вывод картинки ни к чему не приводит.


 
umbra ©   (2007-09-06 13:50) [1]

хорошо бы код привести.


 
clickmaker ©   (2007-09-06 13:51) [2]

а уверен, что дело не в утечке ресурсов?


 
delphiForever   (2007-09-06 13:54) [3]


> хорошо бы код привести

очень большой и запутанный я сам там иногда теряюсь, да и компоненты нужные нужно будет устанавливать


> а уверен, что дело не в утечке ресурсов?

а при чем тут утечка ресурсов


 
clickmaker ©   (2007-09-06 13:57) [4]


> а при чем тут утечка ресурсов

"битмар  куда-то навсегда теряется"


 
delphiForever   (2007-09-06 13:58) [5]

главное можно ли использовать такой подход с потоком, на мой взгляд все вроде бы правильно, может точно где-то в коде ошибка


 
delphiForever   (2007-09-06 14:00) [6]


> "битмар  куда-то навсегда теряется"

но при обращении к нему можна прочитать его размеры


 
Anatoly Podgoretsky ©   (2007-09-06 14:22) [7]

> delphiForever  (06.09.2007 13:48:00)  [0]

Потому что глобальный.


 
Инс ©   (2007-09-06 14:22) [8]


> главное можно ли использовать такой подход с потоком, на
> мой взгляд все вроде бы правильно, может точно где-то в
> коде ошибка

Если к этому TBitmap нет обращения из других потоков, и если вы его потом аккуратно передаете в основной, то можно.


 
delphiForever   (2007-09-06 14:28) [9]

хорошо, а если в потоке создать битмап и выводить его на канву, тоже сразу в том же потоке синхронизации не требуется


 
Anatoly Podgoretsky ©   (2007-09-06 14:31) [10]

> delphiForever  (06.09.2007 14:28:09)  [9]

Канва это VCL или общее слово?


 
Инс ©   (2007-09-06 14:31) [11]


> и выводить его на канву, тоже сразу в том же потоке синхронизации
> не требуется

Еще как требуется. Нужно просто подготовить битмап и аккуратно передать в основной поток, который и выведет.


 
Инс ©   (2007-09-06 14:32) [12]


> Канва это VCL или общее слово?

Я так понял, VCL


 
Anatoly Podgoretsky ©   (2007-09-06 14:32) [13]

> delphiForever  (06.09.2007 14:28:09)  [9]

А если он глобальный, то какая разница, рано или поздно испортишь, создавай в потоке или вне его.


 
delphiForever   (2007-09-06 14:35) [14]


> Канва это VCL или общее слово?

я уже понял ето после того как задал вопрос.


> Anatoly Podgoretsky ©   (06.09.07 14:22) [7]


> Потому что глобальный.

а можна пожалуйста подробнее, причем тут глобальный, как ето влияет


 
Anatoly Podgoretsky ©   (2007-09-06 15:28) [15]

> delphiForever  (06.09.2007 14:35:14)  [14]

Тем что любой другой в любой момент изменит его.
Кроме того VCL не потокобезопасна, куча глобальных переменных.


 
delphiForever   (2007-09-06 15:37) [16]


> umbra ©


> clickmaker ©


> Anatoly Podgoretsky ©


> Инс ©


всем спасиба...



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

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

Наверх




Память: 0.5 MB
Время: 0.04 c
15-1188886052
boriskb
2007-09-04 10:07
2007.09.30
Сумашедший мир


6-1169741565
Pasha L
2007-01-25 19:12
2007.09.30
послать POST-запрос с помощью TidHTTP и не дожидаться ответа


15-1188815525
NailMan
2007-09-03 14:32
2007.09.30
Широкоформатный моник LCD 22" выбираю


2-1189072125
delphiForever
2007-09-06 13:48
2007.09.30
можна ли рисовать на битмапе в TThread


2-1189066158
Fleg
2007-09-06 12:09
2007.09.30
методы