« ☆ADOQueryを使ってImage型を読み書きする。 | トップページ | ☆XQuery 親ノードへのアクセス »

☆WebBrowserでHTMLな文字列を直接表示させる。

WebBrowserで、一時ファイルを使わずに、HTMLを直接表示させるには、次のような処理をしていました。 CSSを指定する必要もなく常に新規ウィンドウで表示させていたので、特に問題がなかったのですが、時々 target="_blank"を書き忘れたりして、OLEエラーが発生していました。

//HTMLのリンク先が同じウィンドウで開くときに問題のあるコード
//って、使ってたんですけど(^^;

uses ActiveX, MSHTML;

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('about:blank');
end;

procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  (WebBrowser1.Document as IHTMLDocument2).body.innerHTML :=
  '<a href="http://hiderin.air-nifty.com/delphi/"' + 
  ' target="_blank">delphi-fan</a>';
end;

フラグを立てて、プログラム側から設定した文字列以外は読み込まないようにすれば問題ないかも知れませんが、次のリンク先にあるコードを使って解決しました。

about.com Delphi Programming
How to load HTML directly to a WebBrowser

|

« ☆ADOQueryを使ってImage型を読み書きする。 | トップページ | ☆XQuery 親ノードへのアクセス »