Как встроить объект браузера, кроме IE <n>, в приложение Delphi - PullRequest
36 голосов
/ 02 октября 2008

Использование TWebBrowser по умолчанию упрощает встраивание веб-браузера. К сожалению, по умолчанию используется IE .

Мне интересно, как можно интегрировать Gecko или WebKit.

  1. Где-нибудь есть примеры VCL?
  2. Если нет, то как можно это сделать?
  3. Где лучше всего найти ядро ​​для Gecko и / или WebKit в встраиваемом формате?

Ответы [ 5 ]

21 голосов
/ 02 октября 2008

TWebBrowser - IE. Это не подключаемая конструкция для браузеров. В ваше приложение могут быть встроены другие браузеры. См

15 голосов
/ 16 марта 2010

Жизнеспособной альтернативой является CEF - Chromium Embedded Framework , которая инкапсулирует браузер Chromium, который сам инкапсулирует WebKit. Эта библиотека предоставляется в виде простых библиотек DLL с экспортированным C API.

Интерфейс delphi доступен по адресу code.google.com / p / delphichromiumembedded

Я использую его с моей собственной реализацией интерфейса и прекрасно работает, хотя его не так просто правильно использовать, как THTML или IE, но отлично подходит для тех, кому нужен мощный и встраиваемый браузер.

3 голосов
/ 02 октября 2008

Альтернативой является компонент THTMLViewer. Я использовал это в течение нескольких лет.

Это теперь доступно бесплатно. веб-сайт здесь http://pbear.com/htmlviewers.html. Согласно веб-сайту songbeamer (http://www.songbeamer.com/delphi/) доступна версия Delphi 2009.

3 голосов
/ 02 октября 2008

Редактировать: Ларс избил меня, к сожалению

Что ж, есть элемент управления ActiveX, основанный на движке Gecko, который пытается представить точную копию API IWebBrowser (который использует TWebBrowser).

Вы можете найти его здесь: http://www.iol.ie/~locka/mozilla/control.htm К сожалению, похоже, что это не было обновлено в течение некоторого времени. Последняя версия основана на Gecko 1.7.12, и я считаю, что Gecko в настоящее время имеет версию 1.9.x (используется в Firefox 3)

2 голосов
/ 02 октября 2008

За последние три года я почти не сталкивался с тем, как встраивать геккона в Delphi. Одной из библиотек, которая появилась довольно поздно в игре (для меня), был проект GeckoSDK на SourceForge . В начале я проделал большую работу, пытаясь заставить правильно встроенный Gecko работать в Delphi. Наша первая попытка создания внутреннего «браузера» на основе движка рендеринга Gecko была основана на Delphi и Gecko 1.8. С тех пор мы пошли дальше, и наш браузер теперь является XULRunne r приложением. У меня на жестком диске лежат фрагменты кода с той ранней попытки, которую я еще не удалил.

Когда Mozilla выпустит Gecko 2.0, я думаю, что будет легче встроить в Delphi. Объектная система XPCOM в Gecko затрудняет встраивание, потому что почти все возвращает NS_RESULT. Струны были особенно жесткими.

edit: Я только что просмотрел свои старые закладки (почти все из которых мертвы) и искал новый URL для браузера "бублик" на японском языке на основе Gecko и нашел его здесь

http://github.com/plus7/bagel/tree/master/Legacy.

Это, пожалуй, лучшая ставка на отличный код для начала. К сожалению, комментарии в коде сделаны на японском языке, и автор так и не ответил на вопросы.

...