我想编一个Html浏览的程序,用TWebBrowser控件。
主要功能有浏览、编辑和修改源码?我希望三个功能都可以在一个WebBrowser控件中完成,三项功能之间可以互相切换。(就像网文快捕一样的)前两项之间切换我都已经做到了,可是不知道如何用WebBrowser在显示当前html和其源码之间切换?
主要功能有浏览、编辑和修改源码?我希望三个功能都可以在一个WebBrowser控件中完成,三项功能之间可以互相切换。(就像网文快捕一样的)前两项之间切换我都已经做到了,可是不知道如何用WebBrowser在显示当前html和其源码之间切换?
var
ps: IPersistStreamInit;
s: string;
ss: TStringStream;
sa: IStream;
begin
ps := WB.document as IPersistStreamInit;
s := '';
ss := TStringStream.Create(s);
try
sa:= TStreamAdapter.Create(ss, soReference) as IStream;
Result := Succeeded(ps.Save(sa, Bool(True)));
if Result then ACode.Add(ss.Datastring);
finally
ss.Free;
end;
end;
// 说明:直接写WebBrowser类
// 参数: WebBrowser -- 准备要写的类
// Html -- 写入的内容
// 返回:无返回值
////////////////////////////////////////////////////////////////////////////////procedure SetHtml(const WebBrowser:TWebBrowser; const Html: string);
var
Stream: IStream;
hHTMLText: HGLOBAL;
psi: IPersistStreamInit;
begin
if not Assigned(WebBrowser.Document) then Exit;
hHTMLText := GlobalAlloc(GPTR, Length(Html) + 1);
if 0 = hHTMLText then RaiseLastWin32Error;
CopyMemory(Pointer(hHTMLText),
PChar(Html), Length(Html));
OleCheck(CreateStreamOnHGlobal(hHTMLText, True, Stream));
try
OleCheck(WebBrowser.Document.
QueryInterface(IPersistStreamInit, psi));
try
OleCheck(psi.InitNew);
OleCheck(psi.Load(Stream));
finally
psi := nil;
end;
finally
Stream := nil;
end;
end;
WebBrowser1.Navigate(HTMLNAME)