![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глюки, связанные с TListView и памятью [D5, Win95/98, WinME, NT4, Win2k, WinXP]
Smok_er © (2002-05-29 13:10:00)Уважаемые мастера!
Помогите пожалуйста.
Я пишу дипломную работу - анализ логфайлов Apache, результаты анализа вывожу в сабже. После вывода очередной статистики сильно заполняется память, причем по какой-то непонятной мне причине память от предыдушего просмотра совершенно другой статистики не освобождается (использую метод Clear).
В результате, после 3-4 просмотров появляется ошибка Out of resources и винда начинает конкретно глючить.
В принципе, не пойму еще и то, почему не освобождается память TStringList"a. Т.е., при использовании что метода Free, что более жесткого Destroy - память, используемая программой не уменьшается :(
Может быть кто-то знает, как с этим бороться?
NailS (2002-05-29 16:48:00) [21]А ты уверен, что именно здесь собака порылась?
Может просто UserAgent не освобождаются после использования?
Smok_er (2002-05-29 13:56:00) [22]ОК!
Вот код вывода в ListView статистики, например по User-Agent"ам.
Вся остальная выводится также.
Причем основной глюк приходится на тот момент, когда я прокручиваю scroll bar.
Т.е. память под программу резко увеличивается, а после перехода на другую статистику не уменьшается.
В данном примере в ListView выводится порядка 400 записей.
PrepareListView;
NewColumn := frMain.lvReports.Columns.Add;
NewColumn.Caption := "User-Agent";
NewColumn := frMain.lvReports.Columns.Add;
NewColumn.Caption := "Hits";
frMain.lvReports.Columns.Items[0].Width:= frMain.lvReports.Width-60-20;
frMain.lvReports.Columns.Items[1].Width:= 60;
frMain.lvReports.Items.BeginUpdate;
for i:=Low(UserAgent) to High(UserAgent) do
begin
ListItem := frMain.lvReports.Items.Add;
ListItem.Caption := UserAgent[i].Name;
ListItem.SubItems.Add(IntToStr(UserAgent[i].Hits));
end;
frMain.lvReports.Items.EndUpdate;
Digitman (2002-05-29 13:35:00) [23]Ну и как ты себе мыслишь это - без оригинального кода сказать тебе, что и где ты там натворил некорректно ?