Главная страница
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.019 c
8-1164884405
POL~LITRA
2006-11-30 14:00
2007.09.30
Движение планет вокруг солнца


6-1170370833
Samael6
2007-02-02 02:00
2007.09.30
Вопрос по сокетам и сокетам....


15-1188459390
NightSkif
2007-08-30 11:36
2007.09.30
FoxPro


3-1180006046
Dmitry_177
2007-05-24 15:27
2007.09.30
Как можно узнать запароленная ли таблица?


2-1189103677
...::ExE::..
2007-09-06 22:34
2007.09.30
Реестр