Полезная информация

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№130-11-2010 10:29:42

MORPEH
Охотник на биты
 
Группа: Members
Откуда: Москва
Зарегистрирован: 12-03-2008
Сообщений: 88
UA: Firefox 3.6
Веб-сайт

Разработка приложения на движке Gecko в Delphi

Большое количество вопросов задается на разных форумах, и малое количество ответов на столь простой вопрос можно найти. Встроенный компонент 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/

Отредактировано MORPEH (30-11-2010 13:02:25)


удалено

Отсутствует

 

№203-03-2012 21:08:39

optical
Участник
 
Группа: Members
Зарегистрирован: 03-03-2012
Сообщений: 9
UA: Chrome 17.0

Re: Разработка приложения на движке Gecko в Delphi

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

Отсутствует

 

№303-03-2012 22:38:57

ПротопопулуS
2,4716 THz на каждое из 64-х ядер...
 
Группа: Members
Откуда: Местное я
Зарегистрирован: 16-12-2008
Сообщений: 1515

Re: Разработка приложения на движке Gecko в Delphi

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


Продам: совесть, ответственность, вежливость, воспитанность. Недорого.

Отсутствует

 

№404-03-2012 02:11:05

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Nightly 13.0

Re: Разработка приложения на движке Gecko в Delphi

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

Отсутствует

 

№504-03-2012 03:52:23

ПротопопулуS
2,4716 THz на каждое из 64-х ядер...
 
Группа: Members
Откуда: Местное я
Зарегистрирован: 16-12-2008
Сообщений: 1515

Re: Разработка приложения на движке Gecko в Delphi

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


Продам: совесть, ответственность, вежливость, воспитанность. Недорого.

Отсутствует

 

№604-03-2012 09:35:18

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 11.0

Re: Разработка приложения на движке Gecko в Delphi

Lain_13

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

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

Отсутствует

 

№704-03-2012 11:16:08

optical
Участник
 
Группа: Members
Зарегистрирован: 03-03-2012
Сообщений: 9
UA: Chrome 17.0

Re: Разработка приложения на движке Gecko в Delphi

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

Отсутствует

 

№805-03-2013 23:44:54

MORPEH
Охотник на биты
 
Группа: Members
Откуда: Москва
Зарегистрирован: 12-03-2008
Сообщений: 88
UA: Opera 12.1
Веб-сайт

Re: Разработка приложения на движке Gecko в Delphi

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


удалено

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]