Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2010, 11:14   #1
095
Пользователь
 
Регистрация: 03.10.2007
Сообщений: 19
Печаль TWebBrowser, Просмотр кода, Access Violation

Сутки добрые, Уважаемые Знатоки!

Помогите с проблемой в 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 кнопки: сначала переход на страницу, и только потом отображение кода... А нужно всетаки все за один раз... Помогите?
095 вне форума Ответить с цитированием
Старый 22.05.2010, 20:15   #2
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Тут всё просто - надо дождаться окончательной загрузки страницы. Вы пытаетесь получить код страницы, когда она ещё не загрузилась.
Исправляется просто:
- поставте функцию GetHTMLSource на событие WebBrowser1DocumentComplete.
Виталий Желтяков вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сlass и Access violation profor Общие вопросы C/C++ 2 05.04.2010 15:21
Access Violation SunKnight Общие вопросы Delphi 2 05.06.2008 16:46
Access violation at address.. RegentM Общие вопросы Delphi 4 01.11.2007 03:46
Access Violation Carbon Общие вопросы Delphi 12 18.09.2007 19:55