FMX.WebBrowser.TWebBrowser

提供: RAD Studio API Documentation
移動先: 案内検索

FMX.WebBrowser.TCustomWebBrowserFMX.Controls.TControlFMX.Types.TFmxObjectSystem.Classes.TComponentSystem.Classes.TPersistentSystem.TObjectTWebBrowser

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 レジストリで行います。

この手動による変更は、次のステップを実行することで適宜行えます:

  1. レジストリ エディタを開きます。
  2. 次のキーを開きます: HKEY_CURRENT_USER > Software > Microsoft > Internet Explorer > Main > FeatureControl > FEATURE_BROWSER_EMULATION
  3. [編集]メニューで、[新規作成]を差し、[DWORD (32-bit) 値]をクリックします。
  4. この新しいエントリの名前を、自分の実行可能ファイル名に変更します(MyApps.exe など)。
  5. 新たに作成されたエントリを選択して、[編集]メニューで、[修整]をクリックします。
  6. 開いた[編集]ダイアログ ボックスで、次を行います:
    • [値のデータ]テキストボックスに 11011 と入力します。
    • [表記]以下で、[10 進数]を選択します。
    • [OK]をクリックして、変更を保存します。

また、アプリケーションが開始した際に、アプリケーションが上で説明した変更を行えるようにすることができます。たとえば、プロジェクトで、FormCreate イベント ハンドラは、次のような TForm1.SetPermissions メソッドを呼び出すことができます:

Delphi
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}
C++Builder:
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
}

メモ: レジストリに対するこれらの変更は、アプリケーションが開始する前に適宜行わなければなりません。最初にアプリケーションを開始した際には、それを一度閉じ、再度開始します。

関連項目