WebBrowser控件能显示内存流的的内容嘛?如何显示出来?? (50分)

  • 主题发起人 主题发起人 anydelphi
  • 开始时间 开始时间
A

anydelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
请给出详细代码,谢谢了!就这么点分了
 
我的意思是将html文件导入内存中,然后用WebBrowser显示出来,加快显示速度
 
你要复杂的,还是简单的?
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=522879
左轻侯的浏览器嵌入了IE,并使用IHTMLDocument
接口,直接显示HTML,避免了生成本地文件,方法也十分巧。但是不能实现交互。
... 最后,发现我其实绕了一个大圈,只用一个 TWebBrowser 就够了。显示网页时
用左轻侯的办法,网页中的连接指向一个自己定义的格式串。获取WebBrowser的事件
WebBrowser.OnBeforeNavigate2,分析一下URL变量,就可以由程序准备下一页数据了...
 
复杂的办法就是实现一个协议,就是chm用的办法
chm中页面的url都是这样的:"mk:@MSITStore:C:/xxx/xxx"
详细参考MSDN。
 
这样可以的吗?好象不行!不知道为什么!
 
tzjxd兄,你的意思是?
 
xusong168:你的目的我还是不明白
你是不是要查看实际的HTML页面的TEXT。
 
哈哈!试试这个:

(WebBrowser.Document as IPersistSteamInit).load(TSteamAdapt.Create(MemoryStream));
就是从一个内存流中读取只存。反之就写。
 
to BeginDelphi 高手:
IPersistSteamInit,TSteamAdapt这两个东东包含在那个文件里面?
编译没有通过!
 
to xusong168
都要拉!:)只有不将html文件存在硬盘上都可以的
 
IHTMLDocument2::write Method

--------------------------------------------------------------------------------

Writes one or more HTML expressions to a document in the specified window.

Syntax

HRESULT write(
SAFEARRAY *psarray
);

Parameters

psarray
[in] BSTR that specifies the text and HTML tags to write.
Return Value

Returns S_OK if successful, or an error value otherwise.
Example

This example shows how to write a string to the document.

Hide Example
IHTMLDocument2 *document; // Declared earlier in the code
HRESULT hresult = S_OK;
VARIANT *param;
SAFEARRAY *sfArray;
BSTR bstr = SysAllocString(OLESTR("Written by IHTMLDocument2::write()."));

// Creates a new one-dimensional array
sfArray = SafeArrayCreateVector(VT_VARIANT, 0, 1);

if (sfArray == NULL || document == NULL) {
goto cleanup;
}

hresult = SafeArrayAccessData(sfArray,(LPVOID*) & param);
param->vt = VT_BSTR;
param->bstrVal = bstr;
hresult = SafeArrayUnaccessData(sfArray);
hresult = document->write(sfArray);

cleanup:
SysFreeString(bstr);
if (sfArray != NULL) {
SafeArrayDestroy(sfArray);
}
See Also

IHTMLDocument2::writeln, IHTMLDocument2::open

--------------------------------------------------------------------------------

© 2001 Microsoft Corporation. All rights reserved. Terms of use.
 
to BeginDelphi 高手:
能留给联系的QQ吗?谢了
 
参考左大侠的大富翁浏览器
 
呵呵!当然可以咯。最近我的QQ被盗咯,他们连密码保护给改咯,太可恶咯。
Email吧:zengxiaoxun@hotmail.com.
 
procedure MemoToWebBrowser;
var
LPersistStreamInit:IPersistStreamInit;
LMemoryStream:TMemoryStream;
begin
LMemoryStream:=TMemoryStream.Create;
try
LPersistStreamInit:=WebBrowser.Document as IPersistStreamInit;
Memo.Lines.SaveToStream(LMemoryStream);
LMemoryStream.Position:=0;
LPersistStreamInit.Load(TStreamAdapter.Create(LMemoryStream));
finally
LMemoryStream.Free;
end;
end;

记得要uses ActiveX单元,还要对WebBrowser的Document进行初始化。
 
to BeginDelphi高手
已经给发了email了,交个朋友吧!我可以送你个QQ?不过是8位的:P
我第一次使用WebBrowser这个控件,还请赐教
怎样对WebBrowser的Document进行初始化??
谢谢了!
 
编译的问题已经解决了!
初始化是不是这样的:
var
URL: OleVariant;
begin
URL := 'about:blank';
WebBrowser.Navigate2(URL);
end;
加了这些以后,可是内容却还是显示不出来??
另外我是想让WebBrowser显示eml文件内容,还要作什么初始化嘛?
 

Similar threads

回复
0
查看
801
不得闲
D
回复
0
查看
816
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部