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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2008, 23:55   #1
Diogo
Пользователь
 
Аватар для Diogo
 
Регистрация: 15.08.2007
Сообщений: 17
По умолчанию TWebBrowser + IE 7.0

При попытке открыть страницу через TWebBrowser, когда в системе установлен IE 7.0 моментально вылетает ошибка "Не удается найти "http://bla-bla-bla.com". Порверьте правильность пути или адреса в Интернете".

Под шестым ИЕ, все работает четко... Чем лечится?

D7, процедура TWebBrowser.Navigate запускается с потока...
Diogo вне форума Ответить с цитированием
Старый 26.01.2008, 00:07   #2
Veiron
Форумчанин
 
Аватар для Veiron
 
Регистрация: 01.12.2007
Сообщений: 346
По умолчанию

Очень странно, у меня IE 7 все работает прекрасно... попробуйте поковырять настройки WebBrowser например Silent
Win 10 x64 | VS 2015 | MSSQL 2014
autovestitv.ru
Veiron вне форума Ответить с цитированием
Старый 26.01.2008, 16:43   #3
Diogo
Пользователь
 
Аватар для Diogo
 
Регистрация: 15.08.2007
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Veiron Посмотреть сообщение
Очень странно, у меня IE 7 все работает прекрасно... попробуйте поковырять настройки WebBrowser например Silent
Перепробовал все что можно. Неполучается. Думал может из-за того, что у меня в системе стоит ИЕ 6.0 и после компиляции у меня работает, а у тех у кого стоит 7.0 не работает по каким-либо причинам. Поставил себе на машину 7.0, компилирую, запускаю, тоже самое. Именно при вызове метода Navigate с потока.

Вот привожу яркий пример, может кто и подскажет, где я неправ:

Код:
unit Unit1;

interface

uses
  Windows, Forms, Controls, StdCtrls, Classes, OleCtrls, SHDocVw;

type
  TMyThread = class(TThread)
    protected
      procedure Execute; override;
    public
      constructor Create(CreateSuspennded: Boolean);
  end;

  TfrmMain1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Browser: TWebBrowser;
    Browser2: TWebBrowser;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    UpdateThread: TMyThread;
    procedure LaunchMyThread;
  public
  end;

var
  frmMain1: TfrmMain1;

implementation

{$R *.dfm}
constructor TMyThread.Create(CreateSuspennded: Boolean);
begin
  inherited
  Create(CreateSuspennded);
end;

procedure TMyThread.Execute;
begin
  frmMain1.Browser.Navigate('http://www.ya.ru');
end;

procedure TfrmMain1.LaunchMyThread;
begin
  UpdateThread := TMyThread.Create(True);
  UpdateThread.Resume;
end;

procedure TfrmMain1.Button1Click(Sender: TObject);
begin
  LaunchMyThread;
end;

procedure TfrmMain1.Button2Click(Sender: TObject);
begin
  Browser2.Navigate('http://www.ya.ru');
end;

end.
При нажатии на Button2 - страница загружается нормально, при нажатии на Button1 и вызове метода Navigate из потока вываливается ошибка "Не удается найти "http://www.ya.ru". Проверьте правильность пути или адреса в Интернете".
В режиме отладки после закрытия ошибки Delphi вываливает свою: "Project Project1.exe raised exception class EOleException with message 'Операция была отменена пользователем'. Process stopped. Use Step or Run to continue"...
Diogo вне форума Ответить с цитированием
Старый 26.01.2008, 17:04   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

А разве так просто можно вызывать в другом потоке процедуры внешние ? сделайте типа
Код:
procedure DoGoUrl;
begin
frmMain1.Browser.Navigate('http://www.ya.ru');   
end;

procedure Execute;
begin
  Synchronize(DoGoUrl); // если не ошибся с правописанием синхронизации
end;
BOBAH13 вне форума Ответить с цитированием
Старый 27.01.2008, 10:22   #5
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Идея Webbrowser в использовании ActiveX компонента от Internet Explorer 6.0 Если у вас в системе изначально стоял IE7 то, в Delphi <=7 не будет работать.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 27.01.2008, 12:43   #6
Diogo
Пользователь
 
Аватар для Diogo
 
Регистрация: 15.08.2007
Сообщений: 17
По умолчанию

1. Стоял ИЕ 6.0. Все работает. Но при запуске приложения на компе с установленным 7.0 не работает.
2. Установил ИЕ 7.0 у себя на компе, перекомпилировал программу - не работает. На машине с 6.0 работает.
3. По совету ВОВАН - вынес вызов Навигейт в отдельную процедуру, заработало и на 7.0.

Да понятно, что не по правилам с потока вызывал этот метод, но с ИЕ 6.0 работает! Нонсенс?
Diogo вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TWebBrowser Закладки aesoem Компоненты Delphi 7 01.05.2021 21:05
TWebBrowser ak3000 Компоненты Delphi 8 08.04.2010 19:33
TWebBrowser DeDoK Общие вопросы Delphi 9 03.06.2008 18:30
Работа с Twebbrowser PUH Помощь студентам 8 16.04.2008 20:41
TWebBrowser dima_lamo Работа с сетью в Delphi 1 19.01.2008 21:16