Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];

Вниз

можна ли рисовать на битмапе в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.525 c
3-1180017883
Slonyra
2007-05-24 18:44
2007.09.30
Экспорт из DBF в Access


2-1188787322
delphino
2007-09-03 06:42
2007.09.30
List index out of bounds (1)


1-1184871572
TUser
2007-07-19 22:59
2007.09.30
Turbo Delphi


15-1188546061
Ega23
2007-08-31 11:41
2007.09.30
Неклиентская область окна


2-1188997477
kyro
2007-09-05 17:04
2007.09.30
Почему в Firebird сбивается сортировка в индексе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский