Страницы: 1
Большое количество вопросов задается на разных форумах, и малое количество ответов на столь простой вопрос можно найти. Встроенный компонент 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.
5. Если у вас Delphi 7 и ниже, то вам нужно перезапустить ее. С Delphi 2010 этого делать не нужно. Теперь на вкладке появится новый компонент
Первое приложение на Gecko
1. Создаем проект. Назовем его White Falcon. Кидаем на форму панель, кнопки, TEdit, TMozillaBrowser, StatusBar.
2. Для первой кнопки пишем следующую процедуру при нажатии на которую, будет переходить на указанный сайт написанный нами в TEdit:
Где mzlbrwsr1 - MozillaBrowser, edt1 - TEdit
3. Для второй кнопки пишем следующую процедуру при нажатии на которую, наш браузер будет обновлять страницу:
3. Для третей кнопки пишем следующую процедуру при нажатии на которую, браузер откроет предыдущую страницу:
4. Четвертая кнопка будет возвращать на более новую открытую страницу
5. Пятая кнопка будет останаливать процесс загрузки страницы:
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 пишем следующий код:
8. И что бы у нас при завершение программы, когда она завершает свою работу, не возникало ошибок, пишем в OnClodeQuery нашей формы следующий код:
Теперь компилируем проект и запускаем. Все работает.
Исходник и исполняемый файл можно скачать отсюда
P.S. В следующий раз расскажу, что еще можно сделать с компонентом
P.S.S. Так же урок доступен на моем сайте: http://gecko.mihalkin.ru/
Отредактировано MORPEH (30-11-2010 13:02:25)
удалено
Отсутствует
Писать на делфях под сишные компоненты - изврат, имхо.
Продам: совесть, ответственность, вежливость, воспитанность. Недорого.
Отсутствует
Lain_13, не могу не согласиться.
Продам: совесть, ответственность, вежливость, воспитанность. Недорого.
Отсутствует
Lain_13
но писать на делфях — изврат само по себе. Как писавший на делфях говорю.
В поздних версиях ({$IFDEF VER210}/{$IFDEF VER220}) при наличии дисциплины кодирования - вполне сносно. Там и дженерики появились, и anonymous routines, и внятная поддержка рефлекшена - они даже сподобились статик-методы сделать . Хотя любить этот язык от наличия всего вышеперечисленного я не стал.
Отсутствует
Я даже спорить не стану. Сам ненавижу этот язык, но у меня просто не остается другого выхода.
Читаю на английском и до конца не понимаю. На русском найти толком ничего не могу и получается что задание не выполнено.
Отсутствует
Ссылки не работают, так как домена нет и сайта тоже нет. Постараюсь чуть позже перезалить файлы, к тому же все есть в интернете. Здесь ничего нет сложного. Для себя уже выбрал другой компонент
удалено
Отсутствует
Страницы: 1