![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Утечка памяти и ресурсов (HTMLViewer) в W98 [D7, Win95/98]
Sir Alex © (2004-01-12 00:12:00)Проверил свою программу и ужаснулся. Буквально за 5-10 обновлений в THTMLViewer в Win98 заканчиваются ресурсы (в часности GDI).
В THTMLViewer данные загружаются:
html.LoadFromBuffer(Pchar(tmpstr),length(tmpstr));
Примеры, которые шли в поставке с HTMLViewer 9.2, работают в W98 корректно, но они пользуются LoadFromFile... Вчем разница этих двух методов я не знаю, т.к. у меня нет исходников HTMLViewers.
На w2k, wXP, вроде работает нормально.
Если убрать вышеизложенный текст, то расход ресурсов исчезает, но естественно ничего не отоброжается...
Может что посоветуете?
nikkie (2004-01-12 19:42:00) [1]>Может надо так?
не надо. как у тебя нормально. очевидно, что если утекают GDI ресурсы - твоя работа со строками тут не причем. что можно сказать? кривая компонента. варианты:
1. пиши автору
2. смотри как себя ведет htmlLite, если там такая же утечка, копайся в коде, а потом пиши автору - глядишь, исправит и может даже подарит лицензию
3. не используй LoadFromBuffer
4. не используй THtmlViewer
Sir Alex (2004-01-12 17:41:00) [2]2 nikkie
дело в том, что я за нее не платил, НО, она для freeware проектов бесплатна. (т.е. для моей программы).
HTMLite не подходит тем, что не умеет печатать...
2 savva
Хм... а как ее после этого кода освободить?
tmpstr:string - обычная локальная переменная, которая преобразуется автоматом в PChar...
Может надо так?:
tmp:=strAlloc(length(tmpstr));
...
LoadFromBuffer
...
strDispose(tmp);
savva (2004-01-12 17:02:00) [3]а особождение памяти стоит после загрузки? потому как я использовал htmlLite передавал строку - вроде как не было замечено проблем..
nikkie (2004-01-12 16:49:00) [4]а... платная версия... может тогда тебе за поддержкой к производителю обратиться? ;)
ну либо посмотреть в htmlLite, чем отличаются эти два метода.
Sir Alex (2004-01-12 14:32:00) [5]2 nikkie
Нет, это не обертка над IE. Это полноценный компонент, который отображает HTML.
Взять/посмотреть можно тут: http://www.pbear.com
nikkie (2004-01-12 01:32:00) [6]для начала неплохо бы прояснить, что такое HTMLViewer. если это просто обертыш над WebBrowser, то в статье Игоря Осовьяка сказано, где может возникать утечка памяти.
http://www.delphikingdom.ru/mastering/tweb.htm