![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
Toboom |
|
|||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 16.12.2005 Репутация: нет Всего: нет |
Народы!
Создаю таймер TimerID[I]:=TimeSetEvent(TimerInterval, 0, @TimeProc1, 0, TIME_PERIODIC); Внутри обработчика TimeProc1 среди остального делается копирование Canvas.CopyRect(MRD, FBmp.Canvas, MRS) из BMP-хи. Так вот достаточно часто, но не всегда из этой самой BMP-хи копируется черти что, а не то, что в ней есть. Т.е. будто иногда в обработчике таймера мы попадаем в какое-то иное адресное пространство или иной какой глюк происходит. Может кто сталкивался с подобным и догадывается чего делать? Заранее благодарен. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Toboom, А с компонентом TTimer тоже такая беда?
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Toboom |
|
|||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 16.12.2005 Репутация: нет Всего: нет |
В том-то и дело, что такая беда только с таймером
из MMSystem. C Ttimer всё работает, но ведь "продергивает" изображение, собака ![]() |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Toboom, Ой так это мультимедийный!!!
Тогда все ясно. Это обычное дело. Таймер работает во втором дополнительном потоке, потому необходима синхронизация доступа к общей памяти главного и таймеровского потоков. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Toboom |
|
|||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 16.12.2005 Репутация: нет Всего: нет |
О! Что-то становится понятно.
А нельзя ли меня направить на какой-то ресурс, чтобы я - малограмотный - въехал как их засинхронизировать. Заранее благодарен. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 16 Всего: 459 |
Сейчас я тему целиком переправлю в Delphi: WinAPI и системное программирование Добавлено @ 17:50 Проще всего использовать критические секции. Можно почитать тут http://forum.vingrad.ru/index.php?showtopic=60076 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Toboom |
|
|||
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 16.12.2005 Репутация: нет Всего: нет |
Крайне признателен за информацию.
В принципе, надо корректно всё переписать через критические секции, но оказалось достаточным сделать Lock обоих используемых Canvas. Ну и разлочить соответсвенно. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |