Как встроить объект браузера, кроме IE<n>, в приложение Delphi
Использование TWebBrowser по умолчанию упрощает встраивание веб-браузера. К сожалению, по умолчанию используется IE
Мне интересно, как можно интегрировать Gecko или WebKit.
- Где-нибудь есть примеры VCL?
- Если нет, то как можно это сделать?
- Где лучше всего найти ядро для Gecko и / или WebKit в встраиваемом формате?
5 ответов
TWebBrowser - это IE. Это не подключаемая конструкция для браузеров. В ваше приложение могут быть встроены другие браузеры. Увидеть
Жизнеспособной альтернативой является CEF - Chromium Embedded Framework, которая инкапсулирует браузер Chromium, который сам по себе инкапсулирует WebKit. Эта библиотека предоставляется в виде простых библиотек DLL с экспортированным C API.
Интерфейс delphi доступен по адресу http://code.google.com/p/delphichromiumembedded
Я использовал его с моей собственной реализацией интерфейса и прекрасно работает, хотя и не так легко правильно использовать как THTML или IE, но отлично подходит для тех, кто нуждается в мощном и встраиваемом браузере.
Изменить: Ларс избил меня, к сожалению,
Ну, есть элемент управления ActiveX, основанный на движке Gecko, который пытается представить точную копию API IWebBrowser (который использует TWebBrowser).
Вы можете найти его здесь: http://www.iol.ie/~locka/mozilla/control.htm К сожалению, похоже, что он не обновлялся некоторое время. Последняя версия основана на Gecko 1.7.12, и я считаю, что Gecko в настоящее время имеет версию 1.9.x (используется в Firefox 3).
Альтернативой является компонент THTMLViewer. Я использовал это в течение нескольких лет.
Это теперь доступно бесплатно. веб-сайт находится здесь http://pbear.com/htmlviewers.html. Согласно веб-сайту songbeamer ( http://www.songbeamer.com/delphi/), доступна версия Delphi 2009.
За последние три года я очень мало сталкивался с тем, как встраивать Gecko в Delphi. Одной библиотекой, которая появилась довольно поздно в игре (для меня), был проект GeckoSDK на SourceForge. В начале я проделал большую работу, пытаясь заставить встроенный Gecko корректно работать в Delphi. Наша первая попытка создания внутреннего "браузера" на основе движка рендеринга Gecko была основана на Delphi и Gecko 1.8. С тех пор мы перешли, и наш браузер теперь является приложением XULRunne r. У меня на жестком диске лежат фрагменты кода с той ранней попытки, которую я еще не удалил.
Когда Mozilla выпустит Gecko 2.0, я думаю, что встраивать в Delphi станет намного проще. Объектная система XPCOM в Gecko затрудняет встраивание, потому что почти все возвращает NS_RESULT. Струны особенно были тяжелыми.
редактировать: я просто просмотрел свои старые закладки (почти все из которых умерли) и искал новый URL для браузера "бублик" на японском языке, основанный на Gecko, и нашел его здесь,
http://github.com/plus7/bagel/tree/master/Legacy.
Это, вероятно, ваш лучший выбор для отличного кода, с которого можно начать. К сожалению, комментарии в коде сделаны на японском языке, и автор так и не ответил на вопросы.