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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2012, 19:42   #1
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию загрузка TWebBrowser в потоке

цель проста и понятна - чтобы загрузка страницы в браузер не тормозила работу программы.
реализация вроде очевидна - загружать страницу в потоке.

но возникает проблема...
пытался запустить первый раз:
ссылка 'ya.ru', выдает ошибку



а потом сообщение, мол, типа "операция прервана пользователем"
в итоге закончилось перезагрузкой компа =(


пытаюсь снова:
ссылка 'http://ya.ru', выдает ту же ошибку,
но на этот раз загружает страницу и больше не стонет...


Кто-нибудь знает, почему происходит такая хрень,
и что можно сделать?

текст программы:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,  SHDocVw;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
end;

TTR = class(TThread)
procedure Execute; override;
end;


var
Form1: TForm1;
WEB:TWebBrowser;
TR:TTR;

implementation  {$R *.dfm}

procedure TTR.Execute;
begin
WEB.Navigate('http://ya.ru');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
// создать браузер
WEB:=TWebBrowser.Create(Form1);
// создать запущеный поток
TR:=TTR.Create(false);
end;

end.
Изображения
Тип файла: jpg err.jpg (34.7 Кб, 97 просмотров)
xrob вне форума Ответить с цитированием
Старый 22.02.2012, 19:46   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

TWebBrowser сам делает все что может в потоке в потоке.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.02.2012, 19:51   #3
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

оу, правда?
а почему тогда прога тормозит?...
xrob вне форума Ответить с цитированием
Старый 23.02.2012, 04:40   #4
SKS
Форумчанин
 
Аватар для SKS
 
Регистрация: 05.01.2009
Сообщений: 242
По умолчанию

Если верно понимаю, то вам нужно чтобы браузер отобразил страницу без запроса, то есть чтобы запустив программу страница уже отображалась.
Я вот так делаю:
Код:
procedure TForm3.FormCreate(Sender: TObject);
begin
webbrowser1.navigate('http://site.ru/index.html');
end;
Это кидаю просто на форму

Последний раз редактировалось SKS; 23.02.2012 в 04:42.
SKS вне форума Ответить с цитированием
Старый 23.02.2012, 08:47   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
и что можно сделать?
Я бы пожалуй IE обновил... Если он на перезагруз тянет, то это уже лечить нужно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
событие в потоке filin2323 C# (си шарп) 4 20.07.2011 22:14
Загрузка в отдельном потоке Crystallon Общие вопросы Delphi 4 05.10.2010 15:15
Incompatible types: 'Unit1.TWebBrowser' and 'SHDocVw.TWebBrowser' simon15x Общие вопросы Delphi 0 10.04.2010 03:11
Загрузка в отдельном потоке TIdHTTP всё равно "замораживает" форму Cold_Night Общие вопросы Delphi 3 07.04.2010 19:35
Загрузка данных в отдельном потоке Dj_smart Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 18.01.2010 23:29