Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Утечка памяти в TValueListEditor.ItemProps, присвоение .EditStyle:=esPickList 
:(
    Опции темы
flomaster
Дата 19.6.2009, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 28.12.2007
Где: СПб

Репутация: нет
Всего: нет



Подключен FastMM4.84
На форму положен  TValueListEditor.
Заполняю строки, использую форму, уничтожаю форму, закрываю программу.
Получаю сообщение об утечке 1хItemProp.

В цикле перебираю поля записи, заполняю строки ValueListEditor, если поле-лукап, то заполняю список подстановки:
Код

    // Проверяем, нужен ли список подстановки
          if f.FieldKind=fkLookup then {f : TField, f:=Dataset.Fields.Fields[i];}
          begin
            ValueListEditor.ItemProps[i].EditStyle := esPickList; //<<-- при закомментировании строки, сообщения об утечке нет.
            Lookadset:=f.LookupDataSet;
            Lookadset.First;
    //Заполняем список подстановки
            while not Lookadset.Eof do
            begin
              ValueListEditor.ItemProps[i].PickList.Add(Lookadset.Fieldbyname(f.LookupResultField).AsString);
              Lookadset.Next;
            end;

Делаю вывод, что присвоение ItemProps[i].EditStyle := esPickList; приводит к созданию объекта, который не удаляется автоматически.
При этом сам ValueListEditor.Strings освобождается автоматически с удалением формы.
Применить ItemProps[i].Free в дестроере формы не удалось, т.к. код (см ниже) вызывал AV.
Код

  for i:=0 to ValueListEditor.RowCount-1 do
    if assigned(vle.ItemProps[i]) then
      ValueListEditor.ItemProps[i].Free;


Проблему решает  ValueListEditor.Strings.Clear;
Хотелось бы понять почему так происходит, в Хелпе и имеющихся книжках упоминания о необходимости очищать ItemProps не нашел.
И как правильно освобождать ValueListEditor и его объекты?

Это сообщение отредактировал(а) flomaster - 19.6.2009, 22:33
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0576 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.