Главная страница
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.027 c
3-1180199006
Helpers
2007-05-26 21:03
2007.09.30
Выборка из результата запроса


15-1188819885
Андрей_К
2007-09-03 15:44
2007.09.30
Монография


15-1188975523
Nous Mellon_
2007-09-05 10:58
2007.09.30
помощь с небольшим пхп-скриптом


15-1188750357
ArtemESC
2007-09-02 20:25
2007.09.30
А с вами бывает такое?


10-1137315632
_Ruslan_
2006-01-15 12:00
2007.09.30
Почему при создании OLE в DLL вызывается ошибка?