掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Web上のXMLファイルを見やすい形でWebBrowserに受け取るには? (ID:22201)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
以前まとめたメモがありましたので、どうぞ。 ブラウザで読み込んだ内容を変換して出力する方法です。 -- TWebBrowser で表示している画面のHTMLソースを取得して変換表示する方法 -- TWebBrowser で表示している画面のHTMLソースを取得する方法と TWebBrowser に任意のHTMLソース文字列を渡して表示させる方法 両方を使って、既存の見ているページのタグの内容を書き換えて 表示することができます。 次のソースを参考にしてください。 ──────────────────── uses ActiveX, AxCtrls, //uses AxCtrls function IStreamToString(pStream: IStream): string; var st : TStringStream; os : TOLEStream; begin result := ''; os := TOLEStream.Create(pstream); st := TSTringStream.Create(''); try st.CopyFrom(os, 0); st.Seek(0, 0); setstring(result, pchar(st.datastring), st.size); finally st.free; os.free; end; end; //uses ActiveX function GetDocumentSourceTWebBrowser(WebBrowser: TWebBrowser): Widestring; var pPStm : IPersistStreamInit; pStream : IStream; hMem : HGLOBAL ; begin pPStm := WebBrowser.document as IPersistStreamInit; hMem := GlobalAlloc(GHND , 0 ); CreateStreamOnHGlobal(Hmem, TRUE, pStream); pPStm.Save(pstream , true); result := IStreamToString( pstream); end; //これでブラウザで表示されているソースが表示される procedure TMainForm.Button1Click(Sender: TObject); begin ShowMessage(GetDocumentSourceTWebBrowser(WebBrowser1)); end; procedure TMainForm.Button2Click(Sender: TObject); var sl: TStringList; ms: TMemoryStream; begin WebBrowser.Navigate('about:blank'); if Assigned(WebBrowser1.Document) then begin sl := TStringList.Create; ms := TMemoryStream.Create; try // HTML を TStringList に作る(直接 Stream でも可能) sl.Text := '<html><body bgcolor="#ff0000">てすと</html>'; sl.SaveToStream(ms); ms.Seek(0, 0); (WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms)); finally ms.Free; sl.Free; end; end; end; ──────────────────── 参考──────────────────── [Delphi:47961] Re: TWebBrowserを使って、HTMLソースを取得したいんですが [Delphi:48941] メモリーリーク? http://www.monazilla.org/document/directwrite.html > 170 名前: ななしくん(もなR) 投稿日: 2001/06/12(火) 13:35 > ・WebBrowser に直接 HTML を表示する方法(で良いのかな?) > uses に ActiveX を追加する。 > var > sl: TStringList; > ms: TMemoryStream; > begin > WebBrowser.Navigate('about:blank'); > if Assigned(WebBrowser.Document) then begin > sl := TStringList.Create; > ms := TMemoryStream.Create; > try > // HTML を TStringList に作る(直接 Stream でも可能) > sl.Text := '<html><body bgcolor="#ff0000">てすと</html>'; > sl.SaveToStream(ms); > ms.Seek(0, 0); > (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms)); > finally > ms.Free; > sl.Free; > end; > end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.