-
Pavia © (18.10.07 01:01) [0]Сталкулся с такой проблемой. Есть фильтор SampleGrabber
В нем идет в колбэк функции захват снимка. В нем ниже следующий кодSampleGrabber1.GetBitmap(bp, pBuffer, BufferLen);
Memo1.Lines.add(IntToStr(GetRValue(BP.Canvas.Pixels[xvideo,yvideo])));
Как только кидаю на форму DSTrackBar программа виснит на выводе в Memo1. -
Сергей М. © (18.10.07 08:44) [1]Для начала убедись в том, что колбэк осуществляется в основном потоке процесса.
-
Pavia © (18.10.07 13:04) [2]Я бы проверил. Вот только как это сделать? У меня только один поток.
А чего там DSPack творит я не знаю. Хотя судя по коду он никаких других потоков не создает. -
Сергей М. © (18.10.07 13:34) [3]
> как это сделать?
В теле колбэк-функции напиши:
if GetCurrentThreadId = MainThreadId then
MesageBox(0, 'Основной', '', mb_ok)
else
MesageBox(0, 'Дополнительный', '', mb_ok) -
Pavia © (18.10.07 13:50) [4]Поток "Дополнительный". Я так понимаю нужно синхронизировать потоки. Может подскажешь как?
-
Сергей М. © (18.10.07 16:07) [5]Посылай (SendMessage, PostMessage) окну формы, на которой расположен Memo, некое предопределенное сообщение, при получении которого код формы обратится к контролам этой формы и сделает то что тебе нужно.