☆TWebBrowserのフォントサイズ変更
TWebBrowserのフォントサイズを実行時にアプリ側から変更するサンプルです。ついでに現在のフォントサイズを取得する処理も書いてみました。フォントサイズについては、よくわからないのですが、下記のサイトで0~4となっていて、IEの「文字のサイズ」が5段階であることから、これに該当すると勝手に判断しています。
この処理の問題点としては、TWebBrowserを使う他のアプリケーションにまで、ここで設定したフォントサイズが 影響することです。(IEには、影響しません)
影響を受けていないように見せるためには、アプリケーション毎に INIファイル等で設定を保存する必要がありそうです。ちょっと面倒です(笑)
Microsoft
サポート オンライン
Visual Basic アプリケーション内にホストされた WebBrowser コントロールのフォント サイズを変更する方法
※例によって機械翻訳されたものです。
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, StdCtrls; type TForm1 = class(TForm) ComboBox1: TComboBox; WebBrowser1: TWebBrowser; procedure FormCreate(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant); private F: Boolean; function GetFontSize: Integer; public end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin // ComboBox1の設定 ComboBox1.Items.Clear; ComboBox1.Style := csDropDownList; ComboBox1.Items.AddObject('最小',TObject(0)); ComboBox1.Items.AddObject('小' ,TObject(1)); ComboBox1.Items.AddObject('中' ,TObject(2)); ComboBox1.Items.AddObject('大' ,TObject(3)); ComboBox1.Items.AddObject('最大',TObject(4)); F := False; // delphi-fanはサイズの違いがわかりにくいです(^^; // 適当に変えて下さい。 WebBrowser1.Navigate('http://hiderin.air-nifty.com/delphi/'); end; // 現在のフォントサイズを返します。 function TForm1.GetFontSize: Integer; var Size: OleVariant; begin WebBrowser1.ExecWB(OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, EmptyParam, Size); Result := Size; end; procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin // プログラム起動時に現在のフォントサイズを設定します。 if not F then begin ComboBox1.ItemIndex := GetFontSize; F := True; end; end; procedure TForm1.ComboBox1Change(Sender: TObject); var Size: OleVariant; begin // フォントサイズを変更します。 Size := Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]); WebBrowser1.ExecWB(OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, Size, EmptyParam); end; end.
この処理の問題点としては、TWebBrowserを使う他のアプリケーションにまで、ここで設定したフォントサイズが 影響することです。(IEには、影響しません)
影響を受けていないように見せるためには、アプリケーション毎に INIファイル等で設定を保存する必要がありそうです。ちょっと面倒です(笑)
Microsoft
サポート オンライン
Visual Basic アプリケーション内にホストされた WebBrowser コントロールのフォント サイズを変更する方法
※例によって機械翻訳されたものです。
| 固定リンク