Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Утечка памяти и ресурсов (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


Наверх

Титульная страница Поиск, карта сайта Написать письмо