2

組み込みのブラウザコンポーネントをTWebBrowserからTChromiumに変更しようとしています。これは主にGoogleとBingの地図を表示するために使用されます。javascriptからDelphiへの通信はCOMで行われます。

ブラウザをTChromiumに変更しようとすると、このコードのコンパイルに失敗します。

if supports(fBrowser.defaultInterface, IOleObject, fOLE) then

defaultInterfaceがTChromiumにないためです。

編集: Chromiumを使用してjavascriptからDelphiに通信することは可能ですか?互換性がないことを認識しており、コードを書き直す必要があります。javascriptからdelphiに結果を取得する方法を知りたいだけです。注:Delphi 2007を使用しているため、拡張RTTIは使用できません。

よろしくローランド・ベングトソン

4

2 に答える 2

5

自分で使用したことはありませんがTChromium、「Chromium」Webブラウザーのラッパーのように見えますが、TWebBrowserDelphiのオリジナルはIEブラウザーのラッパーです。

TWebBrowser.defaultInstanceIEブラウザのCOMオブジェクトを提供します。明らかに使用できるChromiumブラウザの場合TChromium.Browser、タイプのオブジェクトが提供されますICefBrowser。他のインターフェイスタイプに戻ることからキャストするコードがたくさんあるのでTChromium、人々はプロパティに名前を付けないのが賢明でした。同じ名前が付けられた場合、キャストはコンパイルされ、実行時に失敗します。IEブラウザは明らかにChromeブラウザではないため、ChromiumブラウザがすべてのIEインターフェイスを完全に実装しているとは思えません。defaultInstancedefaultInstanceTChromium.Browser

于 2011-07-27T11:47:22.923 に答える
1

TChromiumを使用すると、を介してスクリプトを簡単に呼び出すことができますExecuteJavaScript。また、スクリプトからDelphiコードを呼び出すことができます。これを使用して、JavaScript関数からDelphiに戻り値を送り返すことができます。拡張機能を使用してこれを行うことについては、この質問と私の回答を参照してください。

のような機能についても進行中のようですEexecuteScriptAndReturnValueが、執筆時点ではトランクに含まれていません。

そして、TWebBrowser.DefaultInterface私はCosminに同意します。最も良い例えは、おそらくTChromium.Browserそこからフレームにアクセスし、続いてDOMなどにアクセスできることです。

于 2011-08-03T11:20:33.540 に答える