几个WebBrowser相关的函数
2008-09-20 10:09
197 查看
贴几个 TWebBrowser 编程相关的函数。
{ 去掉
TWebBrowser 的边框 }
procedure WB_Set3DBorderStyle(Sender:
TWebBrowser; bValue: Boolean);
{
WebBrowser 从内存中读取 HTML 文件}
procedure
WebBrowserLoadFromStream(WebBrowser: TWebBrowser; Stream: TStream);
procedure
NavigateLoadFromStream(WebBrowser: TWebBrowser; Stream: TStream);
{
WebBrowser 从字符中读取 HTML 文件}
procedure
WebBrowserLoadFromText(WebBrowser: TWebBrowser; HtmlText:
String);
{ WebBrowser 保存成 Html 文件
}
function WebBrowserSaveHTMLCode(WebBrowser: TWebBrowser; const
FileName: TFileName): Boolean;
{ HTML 保存成流 }
procedure
SaveDocumentSourceToStream(Document: IDispatch; Stream: TStream);
uses Axctrls, ActiveX, MSHTML, OleCtrls,
SHDocVw
{ WB_Set3DBorderStyle }
procedure WB_Set3DBorderStyle(Sender: TWebBrowser; bValue: Boolean);
var
Document: IHTMLDocument2;
Element: IHTMLElement;
StrBorderStyle: string;
begin
//去掉边框
try
Document := TWebBrowser(Sender).Document as IHTMLDocument2;
if Assigned(Document) then
begin
Element := Document.Body;
if Element <> nil then
begin
case BValue of
False: StrBorderStyle := 'none';
True: StrBorderStyle := '';
end;
Element.Style.BorderStyle := StrBorderStyle;
end;
end;
except
//..
end;
end;
{ WebBrowserLoadFromText }
procedure WebBrowserLoadFromText(WebBrowser: TWebBrowser; HtmlText: String);
var
v: Variant;
IDoc: IHTMLDocument2;
begin
WebBrowser.Navigate('about:blank');
repeat
Application.ProcessMessages;
Sleep(0);
until WebBrowser.ReadyState = READYSTATE_COMPLETE;
IDoc := WebBrowser.Document as IHTMLDocument2;
try
IDoc.designMode:='on';
while IDoc.readyState<>'complete' do
Application.ProcessMessages;
v:=VarArrayCreate([0,0],VarVariant);
v[0]:= HtmlText;
IDoc.write(PSafeArray(System.TVarData(v).VArray));
IDoc.designMode:='off';
while IDoc.readyState<>'complete' do
Application.ProcessMessages;
finally
IDoc := nil;
end;
end;
{ NavigateLoadFromStream }
procedure NavigateLoadFromStream(WebBrowser: TWebBrowser; Stream: TStream);
begin
Stream.Seek(0, 0);
if Assigned(WebBrowser.Document) then
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(Stream));
end;
{ WebBrowserLoadFromStream }
procedure WebBrowserLoadFromStream(WebBrowser: TWebBrowser; Stream: TStream);
begin
WebBrowser.Navigate('about:blank');
repeat
Application.ProcessMessages;
Sleep(0);
until WebBrowser.ReadyState = READYSTATE_COMPLETE;
NavigateLoadFromStream(WebBrowser, Stream);
end;
{ WebBrowserSaveHTMLCode }
function WebBrowserSaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean;
var
ps: IPersistStreamInit;
fs: TFileStream;
sa: IStream;
begin
ps := WebBrowser.Document as IPersistStreamInit;
fs := TFileStream.Create(FileName, fmCreate);
try
sa := TStreamAdapter.Create(fs, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
finally
fs.Free;
end;
end;
{ SaveDocumentSourceToStream }
procedure SaveDocumentSourceToStream(Document: IDispatch; Stream: TStream);
var
PersistStreamInit: IPersistStreamInit;
StreamAdapter: IStream;
begin
Stream.Size := 0;
Stream.Position := 0;
if Document.QueryInterface(IPersistStreamInit, PersistStreamInit) = S_OK then
begin
StreamAdapter := TStreamAdapter.Create(Stream, soReference);
PersistStreamInit.Save(StreamAdapter, False);
StreamAdapter := nil;
end;
end;
{ 去掉
TWebBrowser 的边框 }
procedure WB_Set3DBorderStyle(Sender:
TWebBrowser; bValue: Boolean);
{
WebBrowser 从内存中读取 HTML 文件}
procedure
WebBrowserLoadFromStream(WebBrowser: TWebBrowser; Stream: TStream);
procedure
NavigateLoadFromStream(WebBrowser: TWebBrowser; Stream: TStream);
{
WebBrowser 从字符中读取 HTML 文件}
procedure
WebBrowserLoadFromText(WebBrowser: TWebBrowser; HtmlText:
String);
{ WebBrowser 保存成 Html 文件
}
function WebBrowserSaveHTMLCode(WebBrowser: TWebBrowser; const
FileName: TFileName): Boolean;
{ HTML 保存成流 }
procedure
SaveDocumentSourceToStream(Document: IDispatch; Stream: TStream);
uses Axctrls, ActiveX, MSHTML, OleCtrls,
SHDocVw
{ WB_Set3DBorderStyle }
procedure WB_Set3DBorderStyle(Sender: TWebBrowser; bValue: Boolean);
var
Document: IHTMLDocument2;
Element: IHTMLElement;
StrBorderStyle: string;
begin
//去掉边框
try
Document := TWebBrowser(Sender).Document as IHTMLDocument2;
if Assigned(Document) then
begin
Element := Document.Body;
if Element <> nil then
begin
case BValue of
False: StrBorderStyle := 'none';
True: StrBorderStyle := '';
end;
Element.Style.BorderStyle := StrBorderStyle;
end;
end;
except
//..
end;
end;
{ WebBrowserLoadFromText }
procedure WebBrowserLoadFromText(WebBrowser: TWebBrowser; HtmlText: String);
var
v: Variant;
IDoc: IHTMLDocument2;
begin
WebBrowser.Navigate('about:blank');
repeat
Application.ProcessMessages;
Sleep(0);
until WebBrowser.ReadyState = READYSTATE_COMPLETE;
IDoc := WebBrowser.Document as IHTMLDocument2;
try
IDoc.designMode:='on';
while IDoc.readyState<>'complete' do
Application.ProcessMessages;
v:=VarArrayCreate([0,0],VarVariant);
v[0]:= HtmlText;
IDoc.write(PSafeArray(System.TVarData(v).VArray));
IDoc.designMode:='off';
while IDoc.readyState<>'complete' do
Application.ProcessMessages;
finally
IDoc := nil;
end;
end;
{ NavigateLoadFromStream }
procedure NavigateLoadFromStream(WebBrowser: TWebBrowser; Stream: TStream);
begin
Stream.Seek(0, 0);
if Assigned(WebBrowser.Document) then
(WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(Stream));
end;
{ WebBrowserLoadFromStream }
procedure WebBrowserLoadFromStream(WebBrowser: TWebBrowser; Stream: TStream);
begin
WebBrowser.Navigate('about:blank');
repeat
Application.ProcessMessages;
Sleep(0);
until WebBrowser.ReadyState = READYSTATE_COMPLETE;
NavigateLoadFromStream(WebBrowser, Stream);
end;
{ WebBrowserSaveHTMLCode }
function WebBrowserSaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean;
var
ps: IPersistStreamInit;
fs: TFileStream;
sa: IStream;
begin
ps := WebBrowser.Document as IPersistStreamInit;
fs := TFileStream.Create(FileName, fmCreate);
try
sa := TStreamAdapter.Create(fs, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
finally
fs.Free;
end;
end;
{ SaveDocumentSourceToStream }
procedure SaveDocumentSourceToStream(Document: IDispatch; Stream: TStream);
var
PersistStreamInit: IPersistStreamInit;
StreamAdapter: IStream;
begin
Stream.Size := 0;
Stream.Position := 0;
if Document.QueryInterface(IPersistStreamInit, PersistStreamInit) = S_OK then
begin
StreamAdapter := TStreamAdapter.Create(Stream, soReference);
PersistStreamInit.Save(StreamAdapter, False);
StreamAdapter := nil;
end;
end;
相关文章推荐
- 几个WebBrowser相关的函数(转)
- 几个WebBrowser相关的函数--原创
- IOS 开发学习 十四 与CGRect相关的几个结构体和画图有关的几个函数
- socket地址解析相关的几个函数inet_addr,inet_ntoa,gethostname,gethostbyname
- 几个http请求相关的函数
- js中几个正则表达式相关函数使用时g标志的作用
- μC/OS中几个底层相关函数
- Linux下,和时间相关的几个函数
- IO特性(1): socket相关的几个高级IO函数(Unix网络编程笔记)
- ob_get_contents()函数及与其相关几个函数的用法
- oracle中与子程序(函数或过程)相关的几个视图
- R语言系列:秩序相关的几个函数
- PHP正则相关的几个preg函数
- C++ 输入流 cin/ ifstream/ istringstream 及几个相关函数在遇到文件结束符EOF时的行为
- linux下c语言环境变量操作的几个相关函数
- 4、与CPU,内存获取相关的几个函数
- linux下与时间相关的几个函数总结
- QtAssitant(Qt5.2.1)中与Qt的元对象系统和事件机制相关的几个重要段落或函数说明
- 与日期相关的几个常用函数
- js中几个正则表达式相关函数使用时g标志的作用