Web-браузер на Delphi, Різне, Програмування, статті

Сьогодні я вирішив розповісти, як за допомогою 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;


Ну от і все!

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*