9
95
Сутки добрые, Уважаемые Знатоки!
Помогите с проблемой в TWebBrowser, загрузкой страницы и просмотром кода:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var //StartN,EndN:integer;
i:integer;
s:string;
begin
//идем на страницу
try //обезопасим
WebBrowser1.Navigate('http://www.google.com');
except
ShowMessage('немогу, вруби инет');
end;
//выводим текст исходного кода страницы
ShowMessage(GetHTMLSource(WebBrowse r1));
............ на этом месте выскакивает Access Violation
Функция GetHTMLSource(WebBrowser1):
PersistStream:=WB.Document as IPersistStreamInit;
MStream:=TMemoryStream.Create;
SL:=TStringList.Create;
try
Stream:=TStreamAdapter.Create(MStre am,soReference) as IStream;
GResult:=PersistStream.Save(Stream, True); //тут и выскакивает AV
if FAILED(GResult) then
MessageDlg('Ошибочка при передачи HTML source',mtError,[mbOk],0);
finally
MStream.Position:=0;
SL.LoadFromStream(MStream);
Result:=SL.Text;
MStream.Free;
SL.Free;
end;
Если функцию GetHTMLSource навесить на отдельную кнопку - все, соответственно, работает нормально... только нажимать надо на 2 кнопки: сначала переход на страницу, и только потом отображение кода... А нужно всетаки все за один раз... Помогите?
Помогите с проблемой в TWebBrowser, загрузкой страницы и просмотром кода:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var //StartN,EndN:integer;
i:integer;
s:string;
begin
//идем на страницу
try //обезопасим
WebBrowser1.Navigate('http://www.google.com');
except
ShowMessage('немогу, вруби инет');
end;
//выводим текст исходного кода страницы
ShowMessage(GetHTMLSource(WebBrowse r1));
............ на этом месте выскакивает Access Violation
Функция GetHTMLSource(WebBrowser1):
PersistStream:=WB.Document as IPersistStreamInit;
MStream:=TMemoryStream.Create;
SL:=TStringList.Create;
try
Stream:=TStreamAdapter.Create(MStre am,soReference) as IStream;
GResult:=PersistStream.Save(Stream, True); //тут и выскакивает AV
if FAILED(GResult) then
MessageDlg('Ошибочка при передачи HTML source',mtError,[mbOk],0);
finally
MStream.Position:=0;
SL.LoadFromStream(MStream);
Result:=SL.Text;
MStream.Free;
SL.Free;
end;
Если функцию GetHTMLSource навесить на отдельную кнопку - все, соответственно, работает нормально... только нажимать надо на 2 кнопки: сначала переход на страницу, и только потом отображение кода... А нужно всетаки все за один раз... Помогите?