Главная страница
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.021 c
15-1231584835
Kostafey
2009-01-10 13:53
2009.03.15
Посоветуйте литературу по тестированию


15-1232171080
KilkennyCat
2009-01-17 08:44
2009.03.15
Специально для Б


15-1231919578
Анна
2009-01-14 10:52
2009.03.15
Отсутствие палитры компонентов в Delphi7


15-1231582957
saNat
2009-01-10 13:22
2009.03.15
Требуется помощь в настройке Internet-шлюза


15-1231874644
oxffff
2009-01-13 22:24
2009.03.15
Рекомендую. Copy-on-write data structures in Delphi