Конференция "Media" » Проблемы с DSTrackBar [D7, WinXP]
 
  • 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, некое предопределенное сообщение, при получении которого код формы обратится к контролам этой формы и сделает то что тебе нужно.
 
Конференция "Media" » Проблемы с DSTrackBar [D7, WinXP]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]