Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2012, 12:46   #1
d@lphi
Новичок
Джуниор
 
Регистрация: 10.03.2012
Сообщений: 2
По умолчанию Как подружить TwebBrowser, DLL и потоки???

Что хотим получить:

В проекте имеется:

(1) Программа (exe)
(2) dll библиотека, создающая поток, и в потоке создающая форму с TWebBrowser-ом на ней.

Программа определяет сколько потоков ей необходимо и столько раз вызывает из DLL экспортируюмую фунцию, которая создает поток. Каждый поток, как я уже отмечал выше, создает модальную форму с TWebBrowser-ом на ней, за тем каждый поток в своем TWebBrowser-e загружает страницу из интернета (для каждого экземпляра своя), происходит переход по определенной ссылке на загруженой странице и сохранение последней страницы в один общий для всех потоков файл через критическую секцию.

Суть проблемы:

Потоки запусаются, окна создаются, TWebBrowser-ы так же создаются, и навигация на первоначальню страницу для каждего экземпляра происходит правильно, но переход по ссылке на загруженой странице происходит не в каждом окне каждого потока, а в последнем запущеном по поряку модальном окне, т.е. такое ощущение, что все потоки работают с последним по счету запущенным экземпляром TWebBrawser-ом, а не каждый со своим... Почему так происходит???
d@lphi вне форума Ответить с цитированием
Старый 10.03.2012, 17:06   #2
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

может потому что окна модальные?

впрочем, не судите строго, я -ламер...

а вот за идею засунуть WebBrowser в dll - спасибо =)
не так давно бился над работой WebBrowser в потоке,
проблему так и не решил...
может dll поможет =)
xrob вне форума Ответить с цитированием
Старый 10.03.2012, 19:15   #3
d@lphi
Новичок
Джуниор
 
Регистрация: 10.03.2012
Сообщений: 2
По умолчанию

Цитата:
Сообщение от xrob Посмотреть сообщение
может потому что окна модальные?

впрочем, не судите строго, я -ламер...

а вот за идею засунуть WebBrowser в dll - спасибо =)
не так давно бился над работой WebBrowser в потоке,
проблему так и не решил...
может dll поможет =)
Не за что.

Рискну предположить, что с потоком не получилась из-за инициализации COM, в потоках в ручную нужно инициализировать, а в остальном кажется все так же как и в однопоточных приложениях.
d@lphi вне форума Ответить с цитированием
Старый 10.03.2012, 21:09   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но переход по ссылке на загруженой странице происходит не в каждом окне каждого потока, а в последнем запущеном по поряку
А как происходит переход?
Цитата:
Рискну предположить, что с потоком не получилась из-за инициализации COM, в потоках в ручную нужно инициализировать
Это хорошая идея. ActiveX в потоках требуют попаникаться с ними. И это не только Веббраузера касается, я такое часто при работе с ADO встречал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MSAccess & VideoOCX. Как их подружить? Ангран Microsoft Office Access 0 15.05.2011 11:08
формы, потоки и TWebBrowser TipTronic Общие вопросы Delphi 3 05.07.2010 20:10
Как подружить SendMessage и TIdHTTP zcoder Работа с сетью в Delphi 1 13.04.2009 06:01
DLL, потоки BOBAH13 Общие вопросы Delphi 23 27.02.2008 20:43