Как написать браузер на lazarus
Определение браузера, используемого по умолчанию
Для каждой платформы существует свой механизм, позволяющий определять программы, используемые по умолчанию. Модуль LCL lazhelphtml содержит класс THTMLBrowserHelpViewer, позволяющий запускать веб-браузер для просмотра справки LCL. Можно использовать его (класса THTMLBrowserHelpViewer) метод FindDefaultBrowser, чтобы определить браузер, используемый по умолчанию, и запустить его. Далее пример:
В Убунту (Linux) вы можете получить, как пример:
Запуск браузера
Если вы знаете, что такое командная строка и параметры, вы можете использовать класс TProcessUTF8, чтобы запустить браузер:
Lazarus предоставляет пакет TurboPowerIPro (lazarus/components/turbopower_ipro/turbopoweripro.lpk), который имеет следующие возможности:
- Содержит компоненты, которые можно поместить на форму. Когда вы установите пакет в IDE, появятся несколько новых компонентов на палитре (панели компонентов), которые можно бросить на форму, также, как и другие компоненты LCL.
- Он полностью написан на паскале, и будет работать на всех платформах "из коробки" без каких-либо дополнительных манипуляций.
- Вы получите полный контроль над тем, какие файлы/адреса будут открываться.
- Все-таки у него меньше возможностей, чем у полноценного веб-браузера. Не умеет проигрывать мультимедийные данные, использовать ява-скрипт или flash. Эти функции должны быть добавлены вами.
Можно найти несколько примеров в lazarus/components/turbopower_ipro/examples, демонстрирующих как открывать локальный html-файл с изображениями, гиперссылками и кнопками истории посещений.
Если вы используете набор визуальных компонентов Qt, то вы сможете использовать Qt Webkit для того, чтобы вставить браузер в LCL-форму. Lazarus LCL/Qt WebKit доступен по адресу [1].
THtmlPort - это версия HTML-компонентов, разработанных Дэйвом Болдуином, для Lazarus/Free Pascal, включает THtmlViewer, TFrameViewer и TFrameBrowser. THtmlPort вики
GeckoPort - это адаптированная для Lazarus/Free Pascal версия Gecko SDK, разработанного Таканори Ито для Delphi, включая компонент TGeckoBrowser.
Приветствую тебя читатель. Наверное каждый кто начал разрабатывать приложения в Lazarus, заметил что в нем отсутствует компонент для создания браузера, некий аналог TWebBrowser как в Delphi.
Для создания нашего браузера мы будем использовать движок Chromium, на нем работает один из популярных браузеров Google Chrome. Это не единственный движок который мы можем использовать в Lazarus, но ниже речь пойдет именно о нем.
Если у вас Windows то скачиваем Source code
Распаковываем архив в папку components где установлен Lazarus, и устанавливаем данный пакет расширений.
Компилируем пакет, после чего устанавливаем.
Lazarus перезапускается и после этого у нас панели инструментов появляется Chromium
Теперь создание браузера не займет у нас и 5-ти минут. Итак начнем:
Создаем новый проект и добавляем на форму TEdit оба компонента с вкладки Chromium
Теперь добавим немного кода:
На TEdit на событие OnKeyDown
добавим следующий код:
Тем самым при нажатии по клавиши Enter откроем введенный сайт.
И для того чтобы при серфингу по сайту, ссылка в TEdit обновлялась, нужно на событии Chromium OnLoadEnd
добавить след. код:
После чего из скаченного архива файлы, закинуть в папку с нашим проектом.
Готово. Компилируем проект и получаем готовые браузер на Lazarus. Единственный минус как вы понимаете для каждой ОС требуются свои библиотеки.
12 комментариев “ Создаем web browser в Lazarus (fpCEF3) ”
Приветствую Не мог бы помочь в правильном запуске этого компонента? Просто уже много времени всё никак не получается его запустить нормально((( постоянно Lazarus на что-то жалуется. Пожалуйста, напиши на электронку, просто тема очень интересная для меня, а нужных знаний не хватает
Службы в Windows или как они называются в *nix системах Демоны предназначены для выполнения ряда определенных задач без вмешательства пользователя, таких как FTP сервер, WWW или MySQL. Благодаря Lazarus мы можем создавать такие демоны, используя пакет lazdaemon.
Для того чтобы начать разработку службы\демона, установите пакет lazdaemon, который по умолчанию входит в состав Lazarus. Установить вы его можете как через пункт меню «Пакет/Установка и удаление пакетов», так и через запуск lpk файла из папки: lazarus/components/daemon/lazdaemon.lpk
Итак, как обычно начнем с постановки задачи: Чтобы особо не мудрить создадим простую службу, в которой будет запускаться поток, и заносить в файл некий текст вплоть до ее остановки. Запускаться данная служба должна автоматически при старте системы, иметь имя devlaz.
Приступим. После установки пакеты lazdaemon при создании нового приложения, в конце должны добавится 3-и строки. Нас будет интересовать Приложение-демон (служба)
При создании нового проекта будет открыто автоматически 2 невизуальных формы — класс TDaemon и TDaemonMapper.
TDaemon — непосредственно экземпляр сервиса. Именно этот объект реализует сам сервис (его мы видим в Windows в «Управление компьютерами/Сервисы»). Что требуется выполнить перед\после установкой\удаления службы,
TDaemonMapper — Этот компонент выполняет регистрацию службы в системе. Здесь мы можем написать код, который будет выполнятся после установки демона, его удаления и при его запуске.
В свойствах DaemonMapper1 есть параметр DaemonDefs, выбираем его и жмем добавить:
Добавив новый поток демона и выбрав его, мы должны увидеть его свойства:
DaemonClassName по умолчанию это TDaemon1
Description Это описание нашей службы
DisplayName Отображаемое имя службы
Name Имя службы
Данных свойств достаточно для запуска нашей службы.
Теперь давайте напишем код. Выбрав DaemonUnit1 добавим в исходный код наш поток и опишем в переменной файл в который будет происходить запись:
Далее на событие OnStart
добавим следующий код:
Ну и опишем код нашего потока:
Теперь компилируем наш проект и запускаем исполняемый файл с параметром -i для того чтобы он установился в системе. Увы автоматический запуск после этого я настроить не смог, если кому-то это удалось подскажите добавлю в статью, поэтому запускаем службы вручную из mmc оснастки Службы:
Ждем примерно 10 секунд и останавливаем ее отсюда же. В результате чего в файле D:\log.txt должны появится записи свидетельствующие о работе потока.
Для удаления службы из систему требуется указать ключ -u
Путь до службы желателен без русских символов.
Доп. информацию вы можете прочесть на сайте Wiki
10 комментариев “ Создание службы в Lazarus ”
Здравствуйте!
Не могли бы вы описать процесс вывода данных из формы сделанной в Lazarus в шаблон документа ms office ? Т.е. есть шаблон например договора, забиваем данные в форму (номер договора, дата и пр. ) и эти данные вставляются в нужные места в документе.
С уважением Олег
Привет Олег. Вам стоит обратить внимание на компонент FPSpreadsheet, подгружать ваш шаблон и воспользоваться функцией замены текста.
Надо добавить Utf8ToSys а то не будет работать с кириллицей
WordApp.Selection.Find.Text:= WideString(Utf8ToSys(‘Текст’));
WordApp.Selection.Text:= WideString(Utf8ToSys(‘Привет’));
uses
comobj;
procedure TForm1.Button1Click(Sender: TObject);
var
WordApp:OleVariant;
begin
WordApp:=CreateOleObject(‘Word.Application’);
WordApp.Documents.Open(‘d:\test.doc’); //Документ уже должен быть создан
WordApp.Selection.Find.Forward:= True;
WordApp.Selection.Find.Text:= WideString(‘текст’);
if WordApp.Selection.Find.Execute then
WordApp.Selection.Text:= WideString(‘Привет’);
WordApp.ActiveDocument.Save;
end;
Здравствуйте. А можете рассказать как сделать так , чтобы приложением созданным в lazarus могли пользоваться определенное время, а потом нужно было вводить лицензионный ключ или другую возможность, чтобы можно было ограничить время использования программы. Чтобы можно было скачать триал версию приложения, а потом если понравилось купить лицензию , ключ или др. За ранее спасибо
Тут нужно определится как вы будете реализовывать данную технологию. Фиксировать запуск программы, записывая время в файл на ПК или где-то в облаке(что мне больше нравится, но тогда надо ограничить запуск при отсутствии интернета.)
Хранить ключ программы в открытом виде в исходнике тоже не стоит, ибо легко можно будет его легко вытащить.
Нужно чтобы 1-ый ключ формировался по определенному алгоритму, жестко привязываясь к железу, далее отправлялся запрос на сервер. Где обрабатывался и присылался уже 2-й ключ программы для данного ПК. Если интернета нет, то активацию можно делать по Е-Маил или телефону.
Увы описать данный код 10-ю строчками не получится. Требуется писать код как в программе, так и на стороне сервера, например php.
Здравствуйте. Хорошая статья. Все понятно изложенно.
Вот если обьяснили как связать службу и моё прлилложенние.
В принципе вам просто надо запустить основные потоки вашего приложения. Больше сказать трудно увидев ваш код.
Доброго времени суток, дорогой читатель. Сегодня я познакомлю тебя как сделать работу в Lazarus более удобной, сделав из разбросанных рабочих окон единый интерфейс. Давайте разберемся что для этого нужно.
Оказывается разработчики уже позаботились об этом. Нам требуется лишь включить данный пакет расширений, который по умолчанию включен в Lazarus: Anchor Docking
Так выглядит наш Lazarus по умолчанию.
Для того чтобы активировать данный пакет нужно:
Зайти в Пакет-Установить/удалить пакеты
Выбираем anchordockingsgn, жмем кнопку Установить выбранное, после чего Сохранить и перезапустить IDE
Появляется окно с набором пакетов которое будет(было) добавлено в Lazarus, нажимаем Продолжить
После чего наш Lazarus запустится в новом образе.
Я был доволен как слон, пока не попытался запустить один из своих проектов, получив в ответ ошибку: TWinControl.WMSize loop detected
Теперь наш Lazarus принял более удобный вид, по крайней мере для меня. Удачи в кодинге!
Определение браузера, используемого по умолчанию
Для каждой платформы существует свой механизм, позволяющий определять программы, используемые по умолчанию. Модуль LCL lazhelphtml содержит класс THTMLBrowserHelpViewer, позволяющий запускать веб-браузер для просмотра справки LCL. Можно использовать его (класса THTMLBrowserHelpViewer) метод FindDefaultBrowser, чтобы определить браузер, используемый по умолчанию, и запустить его. Далее пример:
В Убунту (Linux) вы можете получить, как пример:
Запуск браузера
Если вы знаете, что такое командная строка и параметры, вы можете использовать класс TProcessUTF8, чтобы запустить браузер:
Lazarus предоставляет пакет TurboPowerIPro (lazarus/components/turbopower_ipro/turbopoweripro.lpk), который имеет следующие возможности:
- Содержит компоненты, которые можно поместить на форму. Когда вы установите пакет в IDE, появятся несколько новых компонентов на палитре (панели компонентов), которые можно бросить на форму, также, как и другие компоненты LCL.
- Он полностью написан на паскале, и будет работать на всех платформах "из коробки" без каких-либо дополнительных манипуляций.
- Вы получите полный контроль над тем, какие файлы/адреса будут открываться.
- Все-таки у него меньше возможностей, чем у полноценного веб-браузера. Не умеет проигрывать мультимедийные данные, использовать ява-скрипт или flash. Эти функции должны быть добавлены вами.
Можно найти несколько примеров в lazarus/components/turbopower_ipro/examples, демонстрирующих как открывать локальный html-файл с изображениями, гиперссылками и кнопками истории посещений.
Если вы используете набор визуальных компонентов Qt, то вы сможете использовать Qt Webkit для того, чтобы вставить браузер в LCL-форму. Lazarus LCL/Qt WebKit доступен по адресу [1].
THtmlPort - это версия HTML-компонентов, разработанных Дэйвом Болдуином, для Lazarus/Free Pascal, включает THtmlViewer, TFrameViewer и TFrameBrowser. THtmlPort вики
GeckoPort - это адаптированная для Lazarus/Free Pascal версия Gecko SDK, разработанного Таканори Ито для Delphi, включая компонент TGeckoBrowser.
Читайте также: