|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Wеbbrowser тормозит прогу - хелп!
Привет всем!
Суть в том, что прога уже есть, она прекрасно работает, но после N минут-часов работы прога постепенно начинает есть до 250 метров памяти. и мой бук виснет наглухо (ВинXP). Подскажите, как мне победить этого монстра? может его как нть удалять, очищать, освобождать память после загрузки страницы, или перед загрузкой следующей стараницы, не знаю... сил нет никаких. Подскажите, плз! |
#2
|
|||
|
|||
поставить 8й эксполорер. Станет чуть полегче, но принципиально ничего не исправится. можно попробовать "убивать" контрол и потом его создавать заного.
|
#3
|
|||
|
|||
Это идея!
Цитата:
8-й ставить неохота, мне кажется, это и вправду полумера. А вот насчет - убивать контрол - как это сделать? У меня ведь браузер фигурирует как компонент Twebbrowser1 можно ли его после прохождения цикла программы убить, и в начале работы проги восстановить? чтобы он стал тем же Twebbrowser1 и встал на свое место в проге (top,left и т.п.) Как? Очень надо! А может он просто накапливает в себе мои загруженные страницы куда нть в закладки? дурь какая-то. Я перехожу по страницам, а браузер хавает память. полный бред. |
#4
|
|||
|
|||
Помогите, плз!
см. выше.
Как убивать и возрождать контролы? |
#5
|
|||
|
|||
Это проблема именно эксплорера.
Восьмой в этом отношении работает лучше, но и его иногда переглючивает и он начинает есть память и тормозить. Как создавать/убивать WebBrowser: Код:
type TForm1 = class(TForm) ... private WB : TWebBrowser; WBUseCount : Integer; procedure RecreateWB(Kill : Boolean = False); end; procedure TForm1.FromCreate(Sender : TObject); begin // начальное создание браузера // во время дизайна его нету... RecreateWB; WBUseCount := 0; end; procedure TForm1.RecreateWB(Kill : Boolean = False); begin If Kill Then WB.Free; WB := TWebBrowser.Create(Self); WB.Parent := Self; // Родитель - форма, панель... WB.Align := alClient; // Если нвдо по координатам, то ставим координаты. end; procedure TForm1.Button1Click(Sender : TObject); begin If WBUseCount > 50 Then RecteateWB; // пересоздаем каждые 50 обращений // далее код обращения к WB, типа WB.Navigate() ... end; |
#6
|
|||
|
|||
Благодарю!
Вот спасибо!!!
Пошел пробовать! |
#7
|
|||
|
|||
Попробовал.
Странное дело, контрол я программно убил через WB.Free;, но память, используемая приложением, не освободилась... 30-60 мБ так и осталось. непонятно. Может, за браузером надо еще какой нть мусор убирать... |