Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с DSTrackBar [D7, WinXP]


Pavia ©   (2007-10-18 01:01:00) 

Сталкулся с такой проблемой. Есть фильтор SampleGrabber
В нем идет в колбэк функции захват снимка. В нем ниже следующий код

SampleGrabber1.GetBitmap(bp, pBuffer, BufferLen);
Memo1.Lines.add(IntToStr(GetRValue(BP.Canvas.Pixels[xvideo,yvideo])));


Как только кидаю на форму DSTrackBar программа виснит на выводе в Memo1.


Сергей М.   (2007-10-18 16:07:00) [1]

Посылай (SendMessage, PostMessage) окну формы, на которой расположен Memo, некое предопределенное сообщение, при получении которого код формы обратится к контролам этой формы и сделает то что тебе нужно.


Pavia   (2007-10-18 13:50:00) [2]

Поток "Дополнительный". Я так понимаю нужно синхронизировать потоки. Может подскажешь как?


Сергей М.   (2007-10-18 13:34:00) [3]


> как это сделать?


В теле колбэк-функции напиши:

if GetCurrentThreadId = MainThreadId then
 MesageBox(0, 'Основной', '', mb_ok)
else
 MesageBox(0, 'Дополнительный', '', mb_ok)


Pavia   (2007-10-18 13:04:00) [4]

Я бы проверил. Вот только как это сделать?  У меня только один поток.
А чего там DSPack творит я не знаю. Хотя судя по коду он никаких других потоков не создает.


Сергей М.   (2007-10-18 08:44:00) [5]

Для начала убедись в том, что колбэк осуществляется в основном потоке процесса.


Наверх

Титульная страница Поиск, карта сайта Написать письмо