Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.05;
Скачать: CL | DM;

Вниз

Ошибка с TWebBrowser   Найти похожие ветки 

 
dmitry kholl   (2006-09-22 16:14) [0]

У меня в программе используется сразу несколько экземпляров браузера на разных закладках PageControl.

Для загрузки данных использую режим About.
Вот как я загружаю и выгружаю данные.

procedure OpenBrowser(ABrowser: TWebBrowser);
begin
 if not Assigned(ABrowser) then Exit;

 ABrowser.Navigate("about:blank");
end;

procedure LoadBrowser(ABrowser: TWebBrowser; const AHTML: String = "");
var
 Document: IHTMLDocument2;
 V: OleVariant;
begin
 if not Assigned(ABrowser) then Exit;

 Document := ABrowser.Document as IHtmlDocument2;
 V := VarArrayCreate([0, 0], varVariant);

 V[0] := AHTML;

 Document.Write(PSafeArray(TVarData(v).VArray));
 Document.Close;

end;

procedure CloseBrowser(ABrowser: TWebBrowser);
begin
 if not Assigned(ABrowser) then Exit;

 ABrowser.Navigate("");
end;


Сначала вызываю OpenBrowser, потом загружаю LoadBrowser и
при закрытии CloseBrowser.

И там много раз при переключении закладок данные подгружаются заново.

Но периодически происходит серия жудких AV.

Подскажите как правильно работать с этим браузером. Я уже третий день бодаюсь с этим. Пока не очень получается.


 
Орион ©   (2006-09-22 17:05) [1]

> Подскажите как правильно работать с этим браузером.

Взять TEmbeddedWB.


 
Орион ©   (2006-09-22 17:06) [2]

Если AV будут и дальше, то смотреть 17 строку кода.

Кстати, а чем жуДкие AV, от не жуДких отличаются?


 
dmitry kholl   (2006-09-22 18:02) [3]

> Взять TEmbeddedWB.

С ним ошибка осталась.

Еще одна связанная наверно с АV проблемма при каждой такой загрузке
растет кол-во используемой памяти.


 
dmitry kholl   (2006-09-22 18:06) [4]

> Если AV будут и дальше, то смотреть 17 строку кода.


Щас уже мне не до юмора :(  это шутка или намек на то что нужно самому освобождать AHTML который я передаю в браузер?


 
DiamondShark ©   (2006-09-22 22:10) [5]


> Но периодически происходит серия жудких AV.

Потому что метод Navigate асинхронный.
Сразу после возврата из Navigate документа может ещё не быть. Соответственно, свойство Document возвращает nil.
Гарантированная точка, в которой существует документ -- событие OnNavigateComplete2.


 
Percent   (2006-09-23 11:42) [6]

procedure OpenBrowser(ABrowser: TWebBrowser);
begin
 if not Assigned(ABrowser) then Exit;
 ABrowser.Navigate("about:blank");

 while (ABrowser.Document = nil) do;

end;


 
DiamondShark ©   (2006-09-23 12:09) [7]


> Percent   (23.09.06 11:42) [6]

Пробовал?


 
Percent   (2006-09-23 15:43) [8]

Пробовал?

А то б я предлагал...


 
dmitry kholl   (2006-09-26 17:05) [9]

Я пока пошел другим путем.
При каждой перегрузке я заново креирую экземпляр класса.
Это "вроде" помогло избавится от AV.

Но с браузером все же есть еще не понятный момент.
После каждой загрузки данных в него, растет используемая программой память.
Мне в принцепе подсказали по чему это могло бы так быть(из-за того что передаю Делфийский String и браузер сам не освобождает эту память).

Я еще не пробывал переделать это  место
Document := ABrowser.Document as IHtmlDocument2;
V := VarArrayCreate([0, 0], varVariant);

V[0] := AHTML;

Document.Write(PSafeArray(TVarData(v).VArray));
Document.Close;


Как вы загружаете в него данные в режиме about?


 
dmitry kholl   (2006-09-26 17:10) [10]

> Потому что метод Navigate асинхронный.
> Сразу после возврата из Navigate документа может ещё не
> быть. Соответственно, свойство Document возвращает nil.
> Гарантированная точка, в которой существует документ --
> событие OnNavigateComplete2.


Спасибо за обьяснение. Теперь стало понятнее.

А есть ли возможность запретить выделение текста в браузере?



Страницы: 1 вся ветка

Текущий архив: 2006.11.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.046 c
2-1161163863
pkm
2006-10-18 13:31
2006.11.05
Мемо.


4-1143738791
mlm68
2006-03-30 21:13
2006.11.05
Как сделать программное безопасное извлечение флешки?


2-1161366808
имя
2006-10-20 21:53
2006.11.05
My Proxy 7.56


15-1160628944
Stanislav
2006-10-12 08:55
2006.11.05
Вопрос по ASP


2-1161607652
atruhin
2006-10-23 16:47
2006.11.05
Сравнение событий Onxxxx