Воскресенье, 19.05.2024, 02:10
Progroll -сайт для программистов
Главная | | Регистрация | Вход
«  Февраль 2016  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
29
Главная » 2016 » Февраль » 27 » веб браузер в Lazarus
18:02
веб браузер в Lazarus
Часто в интернете можно найти аналоги платного бесплатно.Ярким примером тому может быть Lazarus . Бесплатная среда программирования на замену старшему собрату Delphi 7 Для создания приложений мы восползуемсяGeckoPort Chromium Embedded Framework (CEF) Решил использовать второй. Скачать его можно тут. Следует обратить на версию СEF с которой будет работать данный компонент. На момент написания статьи это была версия 3.2454 это позволит потом избежать некоторых ошибок. cef github В о общем скачиваем исходники компонента. Распаковываем архив в какую либо папку. Я для это создал папку на диске С c:\lcl , и распаковал туда архив с исходником. Затем открываем Lazarus и выбираем пункт меню Пакет - Открыть файл пакета (.lpk) lazarus memu packet В появившемся диалоге выбора файла переходим в каталог куда у вас распакован код компонента и выбираем cef.lpk. cef lpk Появится окно установки пакета. В нем нажимаем сначала кнопку Компилировать, а затем выбираем Использовать - Установить. cef packet install Появится окно с предложение пересобрать среду разработки. ide build Нажимаем Да и наблюдаем процесс компилирования разработки. После этого на палитре компонентов появляется вкладка Chromium. panel components Теперь идем сюда и переходив в раздел Branch 2454 и скачиваем Test App для windows 32, если у вас другая версия операционной системы и среды Lazarus, то скачиваете под свою версию. cef git branch Это набор библиотек необходимый для функционирования нашего браузера. Его содержимое необходимо скопировать в папку, куда у вас будет компилировать ваше приложение. Теперь создаем новое приложение. У меня получилось такое. lazarus webbrowser Я добавил на форму компонент TСhromium, пару кнопок, и pagetab с двумя страницами. На одной разместил TСhromium, а на второй разместил TSynEdit (компонент с подсветкой синтаксиса), где будет отображаться исходный код страницы. А дальше написал не много кода для работы. Да и еще что бы все работа в раздел uses добавьте следующие юниты. ? 1 2 3 uses ...... cef3lcl, cef3lib, cef3types, cef3intf, cef3own, gettext, cef3gui, cef3ref, cef3api; А теперь по работе с компонентом. Код загрузки страницы. ? 1 2 3 4 procedure TForm1.btnGoClick(Sender: TObject); begin Chromium.Load(edurl.Text); end; Если требуется использовать при работе Cookie файлы то код немного видоизменяется. ? 1 2 3 4 5 6 7 8 9 10 11 12 procedure TForm1.btnGoClick(Sender: TObject); var CookMan: ICefCookieManager; CookPath: string; CefBack: ICefCompletionCallback; begin CookPath := ExtractFilePath(Application.ExeName) + 'Cookies\octopus'; //задаем путь к "печенькам" ForceDirectoriesUTF8(CookPath); // если пути нет то создаем его CookMan := TCefCookieManagerRef.Global(CefBack); // подключаемся с менеджеру печенек CookMan.SetStoragePath(CookPath, True,CefBack);// устанавливаем пусть к нашему хранилищу Chromium.Load(edurl.Text); // грузим страницу end; После этого если вы допустим войдете на сайт через форму входа и нажмете запомнить на сайте, затем закроете программу и откроете снова то вы автоматически войдет на сайт. Код получения html исходника страницы. По интернету гуляет кусок кода для работы с Chromium на Delphi, ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 procedure StringVisitor(const str: ustring); begin form1.SynEdit1.Text := Utf8ToAnsi(str); end; function GetSourceHTML: string; var CefStringVisitor: ICefStringVisitor; begin CefStringVisitor := TCefFastStringVisitor.Create(StringVisitor); form1.Chromium.Browser.MainFrame.GetSource(CefStringVisitor); end; procedure TForm1.btnSourceClick(Sender: TObject); begin GetSourceHTML; end; для Lazarus он тоже подойдет. Но при компилирование будет выдаваться ошибка Error: Wrong number of parameters specified for call to "StringVisitor" Что бы её убрать в самом начале кода поменяйте директиву ? 1 {$mode objfpc}{$H+} на ? 1 {$mode Delphi}{$H+} И все нормально скомпилируется. Пример получения подстветки кода сайта. synedit colored Если требуется отобразить адрес страницы то можно использовать такой код. ? 1 2 3 4 5 procedure TForm1.ChromiumAddressChange(Sender: TObject; const Browser: ICefBrowser; const Frame: ICefFrame; const url: ustring); begin form1.Caption := 'Octopus-[' + url + ']'; end; Так же меня интересовала работа с проксей у данного компонента, но к сожалению как сделать это из кода я не нашел. Но есть возможность запускать программу с передачей ей команды. Делается это так. ? 1 programma.exe --proxy-server=127.0.0.1:80 Это позволяет соблюдать некую анонимность в сети. Пример работы через проксю. work with proxy Вот такой простой пример по работе с Chromium.
Категория: Уроки программирования | Просмотров: 1634 | Добавил: pascpro | Рейтинг: 0.0/0
Всего комментариев: 0
avatar

Меню сайта
Категории раздела
Уроки программирования [18]
написание программ для андроид [2]
исходники программ [5]
книги для программистов [1]
программирование мобильных устройств [0]
среды программирования [0]
android [0]
java [2]
simbian [0]
учебники и книги по Java [2]
программы для создания игр [1]
прошивка телефонов,смартфонов [3]
java games [0]
Block title
Block title
Вход на сайт
Поиск
Архив записей
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Copyright MyCorp © 2024