FMX.WebBrowser.TWebBrowser
Delphi
TWebBrowser = class(TCustomWebBrowser)
C++
class PASCALIMPLEMENTATION TWebBrowser : public TCustomWebBrowser
プロパティ
| 種類 | 可視性 | ソース | ユニット | 親 |
|---|---|---|---|---|
| class | public | FMX.WebBrowser.pas FMX.WebBrowser.hpp |
FMX.WebBrowser | FMX.WebBrowser |
説明
TWebBrowser は Web ブラウザを定義したものです。
TWebBrowser は、Web コンテンツやローカル ファイルの読み込みと表示を行うためのビジュアル コンポーネントです。読み込む URL や読み込むファイルの名前は、URL プロパティで指定します。
TWebBrowser では、指定 URL への移動、戻る、進むといったブラウザの基本機能や、固有のイベントをサポートしています。
TWebBrowser にコンテンツを読み込んで表示するには、URL またはファイル名をパラメータとして Navigate メソッドを呼び出すか、URL プロパティを設定したあとパラメータなしで Navigate メソッドを呼び出します。
ローカル ファイルを読み込んで表示するには、表示するファイルを配置マネージャに追加して明示的に配置し、ファイル名の前に 'file://' という文字列を付けて Navigate メソッドを呼び出します。
ローカル ファイルの読み込みの例:
WebBrowser1.Navigate('file://MyFile.pdf')
メモ: TWebBrowser コンポーネントは、サポートされているすべてのターゲット プラットフォームで使用できます。
Windows プラットフォームでの JavaScript インテグレーションのサポート
Windows ターゲット プラットフォーム(WIN32 および WIN64)では、Web サイトが様々な用途のために、JavaScript のダイアログ ボックス、パネル、その他要素を使用している場合に、TWebBrowser が Web ページを正しく表示できない場合があります。
この問題を回避するには、アプリケーションは、Internet Explorer の FEATURE_BROWSER_EMULATION 機能を使用して、Web ページを IE11 エッジ モードで表示しなければなりません。
この機能を使用するには、MSDN に説明されているように、適切な変更を Windows レジストリで行います。
この手動による変更は、次のステップを実行することで適宜行えます:
- レジストリ エディタを開きます。
- 次のキーを開きます: HKEY_CURRENT_USER > Software > Microsoft > Internet Explorer > Main > FeatureControl > FEATURE_BROWSER_EMULATION
- [編集]メニューで、[新規作成]を差し、[DWORD (32-bit) 値]をクリックします。
- この新しいエントリの名前を、自分の実行可能ファイル名に変更します(MyApps.exe など)。
- 新たに作成されたエントリを選択して、[編集]メニューで、[修整]をクリックします。
- 開いた[編集]ダイアログ ボックスで、次を行います:
- [値のデータ]テキストボックスに 11011 と入力します。
- [表記]以下で、[10 進数]を選択します。
- [OK]をクリックして、変更を保存します。
また、アプリケーションが開始した際に、アプリケーションが上で説明した変更を行えるようにすることができます。たとえば、プロジェクトで、FormCreate イベント ハンドラは、次のような TForm1.SetPermissions メソッドを呼び出すことができます:
procedure TForm1.FormCreate(Sender: TObject); begin {$IFDEF MSWINDOWS} SetPermissions; {$ENDIF} end; {$IFDEF MSWINDOWS} procedure TForm1.SetPermissions; const cHomePath = 'SOFTWARE'; cFeatureBrowserEmulation = 'Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION\'; cIE11 = 11001; var Reg: TRegIniFile; sKey: string; begin sKey := ExtractFileName(ParamStr(0)); Reg := TRegIniFile.Create(cHomePath); try if Reg.OpenKey(cFeatureBrowserEmulation, True) and not(TRegistry(Reg).KeyExists(sKey) and (TRegistry(Reg).ReadInteger(sKey) = cIE11)) then TRegistry(Reg).WriteInteger(sKey, cIE11); finally Reg.Free; end; end; {$ENDIF}
void __fastcall TForm1::FormCreate(TObject *Sender) { SetPermissions(); } void __fastcall TForm1::SetPermissions() { #ifdef _Windows UnicodeString cHomePath = "SOFTWARE"; UnicodeString cFeatureBrowserEmulation = "Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION\\"; int cIE11 = 11001; UnicodeString sKey = ExtractFileName(ParamStr(0)); TRegIniFile *Reg = new TRegIniFile(cHomePath); __try { TRegistry *reg1 = dynamic_cast<TRegistry*>(Reg); if (Reg->OpenKey(cFeatureBrowserEmulation, true) && !(reg1->KeyExists(sKey) && reg1->ReadInteger(sKey) == cIE11)) { reg1->WriteInteger(sKey, cIE11); } } __finally { Reg->Free(); } #endif }
メモ: レジストリに対するこれらの変更は、アプリケーションが開始する前に適宜行わなければなりません。最初にアプリケーションを開始した際には、それを一度閉じ、再度開始します。