![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблемы с 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]Для начала убедись в том, что колбэк осуществляется в основном потоке процесса.