获取网页源文件 function GetHtml(const WebBrowser: TWebBrowser): string; const //use ActiveX, ComObj BufSize = $10000; var Size : Int64; Stream : IStream; hHTMLText: HGLOBAL; psi : IPersistStreamInit; begin if not Assigned(WebBrowser.Document) then Exit; OleCheck(WebBrowser.Document.QueryInterface(IPersistStreamInit, psi)); try hHTMLText := GlobalAlloc(GPTR, BufSize); if hHTMLText = 0 then RaiseLastWin32Error; OleCheck(CreateStreamOnHGlobal(hHTMLText, True, Stream)); try OleCheck(psi.Save(Stream, False)); Size := StrLen(PChar(hHTMLText)); SetLength(Result, Size); CopyMemory(PChar(Result), Pointer(hHTMLText), Size); finally Stream := nil; end; finally psi := nil; end; end; “另存为”网页 WebBrowser1.ExecWB(OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT); //WebBrowser控件读取HTML源文件 procedure TForm1.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; //调用方法 procedure TForm1.HhfStringGrid1RadioClick(Sender: TObject; ACol, ARow, AIdx: Integer); begin ShowMessage(IntToStr(AIdx)); end; procedure TForm1.Button1Click(Sender: TObject); var AStrs : TStringList; begin AStrs := TStringList.Create; AStrs.LoadFromFile('c:/01.txt');//HTML源码文件存放位置 if not Assigned(WebBrowser1.Document) then WebBrowser1.Navigate('about:blank'); SetHtml(WebBrowser1, AStrs.Text); AStrs.Free; end;