2008-10-02 11 views
35

L'utilisation de TWebBrowser par défaut facilite l'intégration d'un navigateur Web. Malheureusement, celui qui arrive par défaut est IE <n>.Comment intégrer un objet de navigateur, autre que IE <n>, dans une application Delphi

Je me demande comment on peut intégrer un Gecko ou un WebKit.

  1. Existe-t-il des exemples VCL quelque part?
  2. Sinon, comment y arriver?
  3. Où est le meilleur endroit pour trouver le noyau pour Gecko et/ou WebKit dans un format intégrable?

Répondre

20

TWebBrowser est IE. Ce n'est pas une construction plugable pour les navigateurs. Vous pouvez intégrer d'autres navigateurs dans votre application. Voir

+0

Je n'impliquais pas que TWebBrowser était une interface enfichable. Je suis pleinement conscient que c'est IE :) –

+1

J'adore vos liens, cependant, depuis mon début googling sur le sujet n'a rien retourné d'intérêt :) –

+0

Découvrez le projet "Bagel". Voir plus dans ma réponse. – TomC

3

Edit: Lars m'a devancé, malheureusement

Eh bien il y a un contrôle ActiveX basé sur le moteur Gecko qui tente pour présenter une copie exacte de l'API IWebBrowser (utilisée par TWebBrowser).

Vous pouvez le trouver ici: http://www.iol.ie/~locka/mozilla/control.htm Malheureusement, il semble qu'il n'a pas été mis à jour depuis un moment. La dernière version est basée sur Gecko 1.7.12 et je crois que Gecko est actuellement jusqu'à 1.9.x (utilisé dans Firefox 3)

3

Une alternative est le composant THTMLViewer. Je l'ai utilisé pendant quelques années.

Ceci est maintenant disponible gratuitement. le site Web est ici http://pbear.com/htmlviewers.html. Selon le site web songbeamer (http://www.songbeamer.com/delphi/), il existe une version Delphi 2009 disponible.

+3

Comme l'auteur original de PBear n'est plus capable de supporter le code, nous avons déplacé le développement sur ceci: http://sourceforge.net/projects/htmlviewer – PatrickvL

+0

@PatrickvL: Le logiciel HtmlViewer est-il encore plus avancé? – Edelcom

+2

@Edelcom: Si vous regardez le site Web du projet htmlviewer, vous verrez qu'il a été déplacé dans google code entre-temps.Si vous regardez ici http://code.google.com/p/thtmlviewer/updates/liste vous verrez que l'activité la plus récente était il y a seulement quelques jours, donc je pense que la réponse est 'Oui!'; ;-) – PatrickvL

2

Au cours des trois dernières années, j'ai trouvé très peu de choses sur l'intégration de Gecko dans Delphi. Une bibliothèque qui s'est montrée assez tard dans le jeu (pour moi) était le GeckoSDK project on SourceForge. J'ai fait beaucoup de travail au début pour essayer de faire fonctionner correctement Gecko embarqué dans Delphi. Notre première tentative d'un "navigateur" interne basé sur un moteur de rendu Gecko a été réalisée en utilisant Delphi et Gecko 1.8. Nous avons depuis évolué et notre navigateur est maintenant une application XULRunne r. J'ai des morceaux de code qui traînent sur mon disque dur à partir de cette première tentative que je n'ai pas encore supprimé. Quand Mozilla publie Gecko 2.0, je pense qu'il deviendra beaucoup plus facile à intégrer dans Delphi. Le système d'objets XPCOM dans Gecko rend l'intégration très difficile car la plupart des éléments retournent un NS_RESULT. Les cordes étaient particulièrement difficiles.

edit: Je viens de regarder à travers mes anciens signets (dont presque tous sont morts) et cherché une nouvelle URL pour la langue japonaise navigateur « bagel » basé sur Gecko et trouvé ici,

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

C'est probablement votre meilleur pari pour un excellent code à partir duquel commencer.Malheureusement, les commentaires dans le code sont japonais et l'auteur n'a jamais répondu aux questions.

+0

Merci pour le conseil. Il semble assez utile !! –

+1

Cela semble excitant avec Gecko 2.0! Avez-vous une page Web avec plus d'informations? Peut-être une feuille de route et un calendrier pour les libérations, etc. –

+0

Toujours pas de signe de Gecko 2.0 autant que je sache. – TomC

14

Une alternative viable est CEF - Chromium Embedded Framework qui encapsule le navigateur Chromium qui encapsule WebKit. Cette bibliothèque est fournie sous la forme de DLL normales avec une API C exportée.

Il y a une interface delphi disponible à code.google.com/p/delphichromiumembedded

Je l'ai utilisé avec ma propre implémentation de l'interface et fonctionne très bien, mais pas si facile à utiliser correctement comme THTML ou IE, mais grand pour celui qui a besoin d'un puissant et navigateur embarquable.

+0

Merci pour les conseils Carlos. Juste un petit avantage: Pourriez-vous ajouter un lien vers ces URL que vous mentionnez? Je n'ai pas le pouvoir d'éditer votre réponse :) Merci. –

+0

Liens ajoutés comme demandé :) –

Questions connexes