Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.03.15;
Скачать: CL | DM;

Вниз

WebBrowser.Navigator и поток   Найти похожие ветки 

 
cruiser ©   (2009-01-21 20:31) [0]

Здравствуйте все! Подскажите, почему внутри отдельного потока не хочет работать функция WebBrowser.Navigate ? Выдается ошибка что не найдена страница или проверьте доступ к Интернет. При запуске в основном потоке программы все отрабатывает. Как сделать что бы всё работало корректно внутри потока? Delphi 2009, WinXP SP3 Pro
Вот код:
procedure TNewThread.Execute;
begin
form3.WebBrowser1.Navigate("http://www.ya.ru");
end;

procedure TForm3.Button1Click(Sender: TObject);
var
 NewThread: TNewThread;
begin
 NewThread:=TNewThread.Create(true);
 NewThread.FreeOnTerminate:=true;
 NewThread.Priority:=tpLower;
 NewThread.Resume;
end;


 
Медвежонок Пятачок ©   (2009-01-21 20:41) [1]

Как сделать что бы всё работало корректно внутри потока?

Никогда не создавать таких чудесных потоков.


 
cruiser ©   (2009-01-21 20:43) [2]

Ну как и следовало ожидать - опять сарказм, присущий обывателям данного форума... :)
По сути сказать можете должно работать navigate в отдельном потоке или нет?


 
Медвежонок Пятачок ©   (2009-01-21 20:46) [3]

не должно быть обращений к элементам UI из вторичных потоков.
вот это и есть по существу.


 
cruiser ©   (2009-01-21 21:49) [4]

ВСё ясно. буду избавляться от использования navigate внутри потока в этом случае. спасибо.


 
Сергей М. ©   (2009-01-21 23:05) [5]


> cruiser ©   (21.01.09 21:49) [4]


Любопытно, что это за "этот случай" ?
И как это "navigate" НЕ "внутри потока" ?


 
cruiser ©   (2009-01-21 23:39) [6]

:) я привел только часть кода относящуюся к вопросу.
в потоке отрабатываются и другие действия. просто придется либо navigate использовать в основном потоке, что при определенных обстоятельствах приводит к подвисанию главной формы (нет доступа к ресурсу или нет соединения с интернет либо канал интернет слишком узкий), либо попробую idHttp - он вроде в потоке отрабатывает нормально.


 
Сергей М. ©   (2009-01-22 09:21) [7]


> попробую idHttp - он вроде в потоке отрабатывает нормально


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


 
cruiser ©   (2009-01-22 11:15) [8]

Это я понял. Мне нужно получить даже не гипертекст, а содержимое текстового файла на сервере. ya.ru приведен как пример. Попробовал idhttp.get - вроде работает как надо :) Спасибо всем за участие.



Страницы: 1 вся ветка

Текущий архив: 2009.03.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
15-1231238512
palva
2009-01-06 13:41
2009.03.15
Может, кому пригодится


2-1232705794
R13
2009-01-23 13:16
2009.03.15
Событие разрушения формы


2-1232568829
F@T@L_Err0r
2009-01-21 23:13
2009.03.15
Перезвонить при обрыве связи через DSL


15-1231142074
Зязиков Мухамед
2009-01-05 10:54
2009.03.15
шареваре сделать


15-1231835570
Кузьма Захарович
2009-01-13 11:32
2009.03.15
файрвол и касперский антивирус вместе?