Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Вниз

Ошибка с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.081 c
15-1161073849
Kolan
2006-10-17 12:30
2006.11.05
Макросы в BDS2006


2-1161067677
morda
2006-10-17 10:47
2006.11.05
MySQL


2-1161266636
vase
2006-10-19 18:03
2006.11.05
КАК в WINDOWS узнать права пользователей(к какой группе )


2-1161184511
CAH CAHbI4
2006-10-18 19:15
2006.11.05
Создание поля в TADOTable


2-1161616676
RoLeX
2006-10-23 19:17
2006.11.05
Почему в Stringlist не работает LoadFromFile если файл не текст?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский