Как загрузить потоковые(stream) данные в WebBrowser не прибегая к открытию файла?
Falk0ner, вс, 06/07/2008 - 15:35.
Взято из FAQ:http://blackman.km.ru/myfaq/cont4.phtml
Перевод материала с сайта members.home.com/hfournier/webbrowser.htm
function TForm1.LoadFromStream(const AStream: TStream): HRESULT;
begin
AStream.seek(0, 0);
Result := (WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(AStream));
end;
begin
AStream.seek(0, 0);
Result := (WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(AStream));
end;
Автор: Per Larsen
Примечание от Vit
1. В Uses добавить ActiveX
2. Если в TWebBrowser ничего не загружено то код выдаёт Access Violation
Исправляется следующим образом:
function TForm1.LoadFromStream(const AStream: TStream): HRESULT;
{©Drkb v.3(2007): <a href="http://www.drkb.ru" title="www.drkb.ru">www.drkb.ru</a>,
®Vit (Vitaly Nevzorov) - nevzorov@yahoo.com}
begin
AStream.seek(0, soFromBeginning);
WebBrowser1.Navigate('about:blank');
Result := (WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(AStream));
end;
{©Drkb v.3(2007): <a href="http://www.drkb.ru" title="www.drkb.ru">www.drkb.ru</a>,
®Vit (Vitaly Nevzorov) - nevzorov@yahoo.com}
begin
AStream.seek(0, soFromBeginning);
WebBrowser1.Navigate('about:blank');
Result := (WebBrowser1.Document as IPersistStreamInit).Load(TStreamAdapter.Create(AStream));
end;
Автор: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
Отправить комментарий