2007.05.31 Thursday
Delphi コンポーネント紹介 :最適なWEBブラウザは?
Delphiには、標準に、TWebBrowser というのがあって、これは IEコンポーネントと俗に呼ばれている部類だ。IEコンポーネントは、IEエンジンともいい、正式には、Tridentというレンタリングエンジンだ。
TWebBrowserでは、シンプルなので、それを補強するコンポーネントがいくつかある。例えば・・
・TUIWebBrowser
・Embedded Web Browser
どちらも、使ったことがある。標準のTWebBrowserより、色々と便利である。
これにIEに双璧をなしているが、Mozilla、Firefoxなどで利用されているGeckoレンタリングエンジン といえる。このGeckoは、Delphiに取り込む方法がある。
最短の方法は、
Mozilla ActiveX Control から、Mozilla ActiveX Control をダウンロードする。現在の最新のバージョンは、 1.7.12 だ。
そして、これをインストールする。
※既にGeckoエンジンを利用したブラウザを使用している場合は、注意してください。独自にActieveXを登録している場合があるので、Geckoエンジンが使えなくなる場合があります。Firefoxなどの正式のブラウザは大丈夫です。
Delphiのタイプライブラリの取り込みから、
MozillaControl 1.0 Type Library ... を選択して、インストールする。パレットページ名を 例えば、ActiveX などにしておくこと。
すると、ActiceXパレットに、MozillaBrowser のアイコンが表示されるので、これをフォームに貼り付けてみよう。TWebBrowserとほぼ似た使い方ができるはず。
指定のURLを開くには、例えば、下記の様にする。
procedure TForm1.Button1Click(Sender: TObject);
var
temp : OleVariant;
begin
MozillaBrowser1.Navigate('http://www.hopeseeds.com',temp,temp,temp,temp);
end;
Geckoエンジンには、色々と実装方法があるのだが、どれもすんなりいかなかった。多分、私の根気がないだけかもしれないが。結局、シンプルなActiveXの取り込みが簡単だ。
例えば、下記がある。ご参考に。
・Gecko SDK for Delphi
・Mozilla Gecko using Delphi
IEエンジン と Geckoエンジン どれが良いのかと言えば、どちらも満点を出せない現状がある。
IEエンジンはIEと同等でないし、GeckoエンジンもFirefoxと同等にはならないことが多い。
参考:IEエンジン≒IE Sleipnir2 に説明ページ
IEで普通に見れたページが、IEエンジン上のブラウザで、JavaとかActiveX、スクリプトなど使っているページで見れないことがある。回避方法がありそうだが、まどろっこしい設定方法を、使う側の人に求めるには、気が引ける。
一方、Geckoエンジンはインストール時に、OS標準でないActiveXをインストールする必要がある。また、プラグインは、自分で入れておかないと、正常に見れないページが続出する。Firefoxなどで既に入れてあるプラグインが引き継がれる訳ではないようだ。
それでも、ブラウザを一から作る程、危篤でないから、この様にレンタリングエンジンを開放してくれているだけでも、ありがたい。自分専用のブラウザを作るなど夢は広がるね。
TWebBrowserでは、シンプルなので、それを補強するコンポーネントがいくつかある。例えば・・
・TUIWebBrowser
・Embedded Web Browser
どちらも、使ったことがある。標準のTWebBrowserより、色々と便利である。
これにIEに双璧をなしているが、Mozilla、Firefoxなどで利用されているGeckoレンタリングエンジン といえる。このGeckoは、Delphiに取り込む方法がある。
最短の方法は、
Mozilla ActiveX Control から、Mozilla ActiveX Control をダウンロードする。現在の最新のバージョンは、 1.7.12 だ。
そして、これをインストールする。
※既にGeckoエンジンを利用したブラウザを使用している場合は、注意してください。独自にActieveXを登録している場合があるので、Geckoエンジンが使えなくなる場合があります。Firefoxなどの正式のブラウザは大丈夫です。
Delphiのタイプライブラリの取り込みから、
MozillaControl 1.0 Type Library ... を選択して、インストールする。パレットページ名を 例えば、ActiveX などにしておくこと。
すると、ActiceXパレットに、MozillaBrowser のアイコンが表示されるので、これをフォームに貼り付けてみよう。TWebBrowserとほぼ似た使い方ができるはず。
指定のURLを開くには、例えば、下記の様にする。
procedure TForm1.Button1Click(Sender: TObject);
var
temp : OleVariant;
begin
MozillaBrowser1.Navigate('http://www.hopeseeds.com',temp,temp,temp,temp);
end;
Geckoエンジンには、色々と実装方法があるのだが、どれもすんなりいかなかった。多分、私の根気がないだけかもしれないが。結局、シンプルなActiveXの取り込みが簡単だ。
例えば、下記がある。ご参考に。
・Gecko SDK for Delphi
・Mozilla Gecko using Delphi
IEエンジン と Geckoエンジン どれが良いのかと言えば、どちらも満点を出せない現状がある。
IEエンジンはIEと同等でないし、GeckoエンジンもFirefoxと同等にはならないことが多い。
参考:IEエンジン≒IE Sleipnir2 に説明ページ
IEで普通に見れたページが、IEエンジン上のブラウザで、JavaとかActiveX、スクリプトなど使っているページで見れないことがある。回避方法がありそうだが、まどろっこしい設定方法を、使う側の人に求めるには、気が引ける。
一方、Geckoエンジンはインストール時に、OS標準でないActiveXをインストールする必要がある。また、プラグインは、自分で入れておかないと、正常に見れないページが続出する。Firefoxなどで既に入れてあるプラグインが引き継がれる訳ではないようだ。
それでも、ブラウザを一から作る程、危篤でないから、この様にレンタリングエンジンを開放してくれているだけでも、ありがたい。自分専用のブラウザを作るなど夢は広がるね。