Большое количество вопросов задается на разных форумах, и малое количество ответов на столь простой вопрос можно найти. Встроенный компонент TWebBrowser(в новых версиях компонент называется по другому, но работает по тому же принципу) работает с IE, поэтому большое количество программ для работы с интернетом используют этот браузер. Но давно существует несколько простых решение и для программистов Delphi: использовать компонент TGeckoBrowser и ActiveX от Mozilla. Что первое, что и последнее, давно уже не развивается, но работают исправно, за исключением первого: TGeckoBrowser уже не работает с Gecko 2.0, но если у вас есть руки, то исправить это можно. А вот с ActiveX все проще. Да и функций у него больше.

Что бы не быть голословным, напишем простой браузер на Delphi. Ведь надо начинать с простого. В разработке будем использовать ActiveX

Подготовка к разработке

1. Сначала нам нужно скачать и установить Mozilla Control(ActiveX).  Скачать
2. Теперь я предлагаю скачать сам движок. Скачать
3. Теперь мы должны установить ActiveX  в систему. После чего распакуйте движок в любое место.
4. Запускаем Delphi  и импортируем компонент MozillaControl 1.0 Type Library.
import.png
5. Если у вас Delphi 7 и ниже, то вам нужно перезапустить ее. С Delphi 2010 этого делать не нужно. Теперь на вкладке появится новый компонент
activex.png

Первое приложение на Gecko

1. Создаем проект. Назовем его White Falcon. Кидаем на форму панель, кнопки, TEdit, TMozillaBrowser, StatusBar.
develop.png

2. Для первой кнопки пишем следующую процедуру при нажатии  на которую, будет переходить на указанный сайт написанный нами в TEdit:

Выделить код

Код:

mzlbrwsr1.Navigate(edt1.Text, EmptyParam, EmptyParam, EmptyParam, EmptyParam);

Где mzlbrwsr1 - MozillaBrowser, edt1 - TEdit
3. Для второй кнопки пишем следующую процедуру при нажатии  на которую, наш браузер будет обновлять страницу:

Выделить код

Код:

mzlbrwsr1.Refresh;

3. Для третей кнопки пишем следующую процедуру при нажатии  на которую, браузер откроет предыдущую страницу:

Выделить код

Код:

mzlbrwsr1.GoBack;

4.  Четвертая кнопка будет возвращать на более новую открытую страницу

Выделить код

Код:

mzlbrwsr1.GoForward

5. Пятая кнопка будет останаливать процесс загрузки страницы:

Выделить код

Код:

mzlbrwsr1.Stop

6. Теперь сделаем что бы в заголовке окна у нас появилась информация из Title, и заодно менялась ссылка в нашем TEdit. OnNavigateComplete2 компонента MozillaBrowser пишем следующий код:

Выделить код

Код:

if mzlbrwsr1.LocationName <> '' then
    Caption := mzlbrwsr1.LocationName + ' - White Falcon'
  else
    Caption := 'White Falcon';
    edt1.Text := mzlbrwsr1.LocationURL;

7. Теперь добавим StatusBar для отображения загружаемых элементов страницы. OnStatusTextChange компонента MozillaBrowser пишем следующий код:

Выделить код

Код:

stat1.SimpleText:=Text;

8. И что бы у нас при завершение программы, когда она завершает свою работу, не возникало ошибок, пишем в OnClodeQuery нашей формы следующий код:

Выделить код

Код:

mzlbrwsr1.Stop;
  mzlbrwsr1.Free;

Теперь компилируем проект и запускаем. Все работает.
built.png

Исходник и исполняемый файл можно скачать отсюда

P.S. В следующий раз расскажу, что еще можно сделать с компонентом
P.S.S. Так же урок доступен на моем сайте: http://gecko.mihalkin.ru/

все ссылки битые. смысл от этой темы.
сделайте нормально

Писать на делфях под сишные компоненты - изврат, имхо.

ПротопопулуS
Имхо, но писать на делфях — изврат само по себе. Как писавший на делфях говорю.

Lain_13, не могу не согласиться.

Lain_13

но писать на делфях — изврат само по себе. Как писавший на делфях говорю.

В поздних версиях ({$IFDEF VER210}/{$IFDEF VER220}) при наличии дисциплины кодирования - вполне сносно. Там и дженерики появились, и anonymous routines, и внятная поддержка рефлекшена - они даже сподобились статик-методы сделать :). Хотя любить этот язык от наличия всего вышеперечисленного я не стал.

Я даже спорить не стану. Сам ненавижу этот язык, но у меня просто не остается другого выхода.
Читаю на английском и до конца не понимаю. На русском найти толком ничего не могу и получается что задание не выполнено.

Ссылки не работают, так как домена нет и сайта тоже нет. Постараюсь чуть позже перезалить файлы, к тому же все есть в интернете. Здесь ничего нет сложного. Для себя уже выбрал другой компонент