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

Вниз

Утечка памяти и ресурсов (HTMLViewer) в W98   Найти похожие ветки 

 
Sir Alex ©   (2004-01-12 00:12) [0]

Проверил свою программу и ужаснулся. Буквально за 5-10 обновлений в THTMLViewer в Win98 заканчиваются ресурсы (в часности GDI).
В THTMLViewer данные загружаются:

html.LoadFromBuffer(Pchar(tmpstr),length(tmpstr));


Примеры, которые шли в поставке с HTMLViewer 9.2, работают в W98 корректно, но они пользуются LoadFromFile... Вчем разница этих двух методов я не знаю, т.к. у меня нет исходников HTMLViewers.
На w2k, wXP, вроде работает нормально.
Если убрать вышеизложенный текст, то расход ресурсов исчезает, но естественно ничего не отоброжается...

Может что посоветуете?


 
nikkie ©   (2004-01-12 01:32) [1]

для начала неплохо бы прояснить, что такое HTMLViewer. если это просто обертыш над WebBrowser, то в статье Игоря Осовьяка сказано, где может возникать утечка памяти.
http://www.delphikingdom.ru/mastering/tweb.htm


 
Sir Alex ©   (2004-01-12 14:32) [2]

2 nikkie
Нет, это не обертка над IE. Это полноценный компонент, который отображает HTML.
Взять/посмотреть можно тут: http://www.pbear.com


 
nikkie ©   (2004-01-12 16:49) [3]

а... платная версия... может тогда тебе за поддержкой к производителю обратиться? ;)

ну либо посмотреть в htmlLite, чем отличаются эти два метода.


 
savva ©   (2004-01-12 17:02) [4]

а особождение памяти стоит после загрузки? потому как я использовал htmlLite передавал строку - вроде как не было замечено проблем..


 
Sir Alex ©   (2004-01-12 17:41) [5]

2 nikkie
дело в том, что я за нее не платил, НО, она для freeware проектов бесплатна. (т.е. для моей программы).

HTMLite не подходит тем, что не умеет печатать...

2 savva
Хм... а как ее после этого кода освободить?
tmpstr:string - обычная локальная переменная, которая преобразуется автоматом в PChar...
Может надо так?:
tmp:=strAlloc(length(tmpstr));
...
LoadFromBuffer
...
strDispose(tmp);


 
nikkie ©   (2004-01-12 19:42) [6]

>Может надо так?
не надо. как у тебя нормально. очевидно, что если утекают GDI ресурсы - твоя работа со строками тут не причем. что можно сказать? кривая компонента. варианты:
1. пиши автору
2. смотри как себя ведет htmlLite, если там такая же утечка, копайся в коде, а потом пиши автору - глядишь, исправит и может даже подарит лицензию
3. не используй LoadFromBuffer
4. не используй THtmlViewer



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
1-1078559464
SS
2004-03-06 10:51
2004.03.28
Загрузка компонента


11-1056787866
mox
2003-06-28 12:11
2004.03.28
Timer


14-1077303187
тихий вовочка
2004-02-20 21:53
2004.03.28
пользовательские запросы к Яndex


1-1078415118
Pa5ha
2004-03-04 18:45
2004.03.28
MainMenu


6-1073514449
Кен
2004-01-08 01:27
2004.03.28
TWebBrowser Как в BeforeNavigate2 отличить загрузку очередного