Главная страница
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.019 c
2-1232976086
Mishenka
2009-01-26 16:21
2009.03.15
Как сделать в ToolButtone кнопки разной ширины?


2-1232720314
Виолета с
2009-01-23 17:18
2009.03.15
Лист Бокс


10-1153497317
TStas
2006-07-21 19:55
2009.03.15
Как добраться до колонтитула в Ворде?


11-1198028966
zNk
2007-12-19 04:49
2009.03.15
Создание собственных компонентов для KOL & MCK


2-1232537796
fenix96
2009-01-21 14:36
2009.03.15
вывод в StringGrid