![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
Shaman2008 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 21.6.2008 Репутация: нет Всего: нет |
Приветствую!
Уважаемые, подскажите, в чем проблема? Третий день бьюсь. То ли лыжи не едут, то ли у меня какие-то проблемы. Заблудился в "трех соснах". Проблема следующая: При вызове метода Assign объекта TImage из потока, картинка на форме обновляется только один раз. Если же этот метод повесить просто на кнопку формы, то при каждом клике все обновляется как надо. Подскажите, где загвоздка? Что мешает обновляться изображению при каждом вызове метода Assign из потока? Form1
MyThread
VStream
Заранее, спасибо! |
||||||
|
|||||||
Illusion Dolphin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 5 Всего: 63 |
TCanvas нельзя использовать в потоке.
-------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
Shaman2008 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 21.6.2008 Репутация: нет Всего: нет |
Подскажите, а если я сделаю так: ... fCurScreen.Canvas.Lock; SetStretchBltMode(fCurScreen.Canvas.Handle, HALFTONE); StretchBlt(fCurScreen.Canvas.Handle, 0, 0, fCurScreen.Width, fCurScreen.Height, fDC, 0, 0, fDCWidth, fDCHeight, SRCCOPY); fCurScreen.Canvas.Unlock; ... Все работает отлично, только имеет ли смысл, в таком случае, использовать отдельный поток? В том смысле, что, я хотел бы разгрузить основой поток от действий, представленных в данном коде. Все ли верно? Заранее, спасибо! Это сообщение отредактировал(а) Shaman2008 - 25.5.2015, 13:45 |
|||
|
||||
Illusion Dolphin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 5 Всего: 63 |
Вот это правильный вопрос. Когда я в последний раз копался по сырцам делфи ответ был что смысла нету т.к. там где-то был глобальный lock. В любом случае я бы просто постарался избежать обращения к канве. -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
Shaman2008 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 21.6.2008 Репутация: нет Всего: нет |
Спасибо огромное за ответ! Не могли бы Вы подкинуть очень простой пример, как в данной ситуации можно избежать обращения к канве из потока? Просто хочется сделать "ближе к правде", а с потоками я пока, увы, на Вы... Заранее благодарен. |
|||
|
||||
Illusion Dolphin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 5 Всего: 63 |
А зачем вам она нужна? Если у вас ресайз, то его можно без канвы сделать и нет проблем. -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |