Главная страница
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.017 c
2-1188679215
Нуб
2007-09-02 00:40
2007.09.30
Запуск программы как сервис в винде..


9-1161181131
cxvxc
2006-10-18 18:18
2007.09.30
Создать окно которое было бы всегда поверх других?


15-1188795881
Palladin
2007-09-03 09:04
2007.09.30
Монстроидальный Unit


1-1184613088
Lavrenty
2007-07-16 23:11
2007.09.30
Событие на обновление файла


15-1188353765
Slider007
2007-08-29 06:16
2007.09.30
С днем рождения ! 29 августа 2007 среда