Web-браузер на Delphi

Источник: pcnext
Ystas

Сегодня я решил рассказать, как с помощью Delphi можно написать свой браузер и работать он будет на основе Internet Explorer.

Начнем!

Самой главной частью нашей программы будет компонент WebBrowser, который ты сможешь найти на палитре компонентов во вкладке Internet.

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

Для удобства расположения компонента измени его свойство Align на AllClient в объектном инспекторе на вкладке Properties.

Теперь нам необходимо поле, в которое мы будем вводить адрес нужного нам ресурса, как правило, в таких случаях используются поля типа ComboBox, поэтому расположим такой компонент на своей форме с вкладки Standard.

Для удобства в нашем браузере необходимо использовать панели, на которых будут располагаться наши поля и кнопки. Для этого перейди на вкладку Win 32 и расположи на форме с этой вкладки компоненты CoolBar и два ToolBar . На компоненте CoolBar , будут находиться, компоненты ToolBar, которые можно будет перемещать по нему, а на ToolBar будут находиться поля для ввода и кнопки. Как ты заметил такая схема используется почти во всех приложениях Windows и в браузерах тоже, потому мы и не отходим от этого правила (это просто удобно).

Теперь вернемся к компоненту ComboBox 1, его перенесем на ToolBar 2, а на ToolBar 1 мы расположим кнопки управления.

Вот, что получилось у меня:

 

Теперь опишем событие для ComboBox, которое будет происходить после того как вы набрали адрес и нажали на кнопку Enter. Для этого в объектном инспекторе во вкладке Events, кликнем два раза по событию OnKeyDown и пишем:

if Key= VK_RETURN then
WebBrowser1.Navigate(ComboBox1.Text);

Если кнопка с кодом VK_RETURN(Enter) нажата, то компонент WebBrowser1, загружает адрес записанный в поле ComboBox1.

Теперь измени свойства компонента ToolBar1: AutoSize и ShowCaptions на true.
Кликай по нему же правой кнопкой и выбери пункт меню NewButton, он необходим для создания кнопок на панели. Создай пока четыре кнопки и измени их свойства Captions на: Назад, Вперед, Обновить и стоп.
Теперь пишем для каждой:

Назад:

procedure TForm1.ToolButton2Click(Sender: TObject);
begin
WebBrowser1.GoBack;
end;

Вперед:

procedure TForm1.ToolButton3Click(Sender: TObject);
begin
WebBrowser1.GoForward;
end;

Стоп:

procedure TForm1.ToolButton4Click(Sender: TObject);
begin
WebBrowser1.Stop;
end;

Обновить:

procedure TForm1.ToolButton5Click(Sender: TObject);
begin
WebBrowser1.Refresh;
end;

Я думаю каждый знает, что обозначают эти кнопки в любом браузере.
Теперь можешь проверить свою  работу!

 

На моей форме ты можешь увидеть в нижней части две панельки, самая нижняя панель для вывода информации о ходе загрузки, а вторая для вывода информации о загрузке в виде полосы.
Находятся она на панели Win32 под именами StatusBar и ProgresBar, расположи их на форме и измени свойство Align на AllBottom, о том, как менять свойства компонента я уже говорил.

Чтобы они работали в обработчиках событий объекта WebBrowser1:

OnProgressChange и OnStatusTextChange пишем:

//Задаются максимальное значение и значение позиции (хода) загрузки
//для ProgressBar1

procedure TForm1.WebBrowser1ProgressChange(Sender: TObject; Progress,
ProgressMax: Integer);
begin
ProgressBar1.Max:=ProgressMax;
ProgressBar1.Position:=Progress;
end;

//Вывожу информацию о ходе загрузки страницы в StatusBar1.

procedure TForm1.WebBrowser1StatusTextChange(Sender: TObject;
const Text: WideString);
begin
StatusBar1.SimpleText:=Text;
end;

Ну вот и все!


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=2964