procedure TForm1.SaveHTMLSourceToFile(const FileName: string; WB: TWebBrowser); var PersistStream: IPersistStreamInit; FileStream: TFileStream; Stream: IStream; SaveResult: HRESULT; begin PersistStream := WB.Document as IPersistStreamInit; FileStream := TFileStream.Create(FileName, fmCreate); try Stream := TStreamAdapter.Create(FileStream, soReference) as IStream; SaveResult := PersistStream.Save(Stream, True); if FAILED(SaveResult) then MessageBox(Handle, 'Fail to save HTML source', 'Error', 0); finally { we are passing soReference in TStreamAdapter constructor, it is our responsibility to destroy the TFileStream object. } FileStream.Free; end; end; pocedure TForm1.Button1Click(Sender: TObject); begin if SaveDialog1.Execute then SaveHTMLSourceToFile(SaveDialog1.FileName, WebBrowser1); end;
我的代码: if WebBrowser1.QueryStatusWB(OLECMDID_SAVE)=OLECMDF_ENABLED then WebBrowser1.ExecWB(OLECMDID_SAVE,OLECMDEXECOPT_DONTPROMPTUSER); WebBrowser1.Document._Release; WebBrowser1.Navigate('', Flags, Flags, Flags, Flags); WebBrowser1.Refresh; //我感觉以上的代码已经释放了doc文件 Adoquery1.Close; Adoquery1.SQL.Clear; Adoquery1.SQL.Add('update 值班记录模板 set 模板=:CC where 类别=''' + AClassType + ''''); Adoquery1.Parameters.ParamByName('CC').LoadFromFile(FileName, ftMemo);//但是这一句出错 Adoquery1.ExecSQL; WebBrowser1.Navigate(FileNameFull, Flags, Flags, Flags, Flags);请大侠指点!
WB: TWebBrowser);
var
PersistStream: IPersistStreamInit;
FileStream: TFileStream;
Stream: IStream;
SaveResult: HRESULT;
begin
PersistStream := WB.Document as IPersistStreamInit;
FileStream := TFileStream.Create(FileName, fmCreate);
try
Stream := TStreamAdapter.Create(FileStream, soReference) as IStream;
SaveResult := PersistStream.Save(Stream, True);
if FAILED(SaveResult) then
MessageBox(Handle, 'Fail to save HTML source', 'Error', 0);
finally
{ we are passing soReference in TStreamAdapter constructor,
it is our responsibility to destroy the TFileStream object. }
FileStream.Free;
end;
end; pocedure TForm1.Button1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
SaveHTMLSourceToFile(SaveDialog1.FileName, WebBrowser1);
end;
WebBrowser1.ExecWB(OLECMDID_SAVE,OLECMDEXECOPT_DONTPROMPTUSER);
WebBrowser1.Document._Release;
WebBrowser1.Navigate('', Flags, Flags, Flags, Flags);
WebBrowser1.Refresh;
//我感觉以上的代码已经释放了doc文件
Adoquery1.Close;
Adoquery1.SQL.Clear;
Adoquery1.SQL.Add('update 值班记录模板 set 模板=:CC where 类别=''' + AClassType + '''');
Adoquery1.Parameters.ParamByName('CC').LoadFromFile(FileName, ftMemo);//但是这一句出错
Adoquery1.ExecSQL;
WebBrowser1.Navigate(FileNameFull, Flags, Flags, Flags, Flags);请大侠指点!