![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
![]()
есть еще такая возможность убивать объекты - FreeAndNil(имя_объекта)
но формы лучше всего дестроить именно Release если форма используется многократно, то может имеет смысл ее не убивать, а создать при первом вызове, а дальше только хайдить и при необходимости снова показывать?! |
![]() |
![]() |
![]() |
#22 |
Форумчанин
Регистрация: 03.10.2008
Сообщений: 180
|
![]()
Все описанное выше - правильно. Но кто нибудь проверял диспетчером задач свое приложение, сколько оно места занимает? Понакидайте на форму, которую создаем как "доступную", побольше разных компонентов (ListView). Coздайте две кнопочки: одна будет создавать форму, другая уничтожать. Обратите внимание, сколько ваша программа занимает. Проделайте десяток процедур по созданию-уничтожению формы, и сравните занимаемую память с начальной величиной. Так что получается, что не в программе дело а в виндоусе, который не хочет сразу освобождать память. Возможно он и освобождает, но она числится как используемая.
лучший подарок женщине-программисту
|
![]() |
![]() |
![]() |
#23 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
резервирование памяти...то есть винда оставляет память за приложением(а вдруг понадобится ему)...поидее если недостаток памяти она должна её перераспределить...а на практике хрен знает
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#24 | |
Форумчанин
Регистрация: 28.09.2008
Сообщений: 344
|
![]()
Набросал небольшой тест ( на Delphi 7 )
Вложение 9817 (правда там модальная форма пока пустая - можете продолжить с разным заполнением). Поправлю немного Antony41 Assigned(const P) - не проверяет "существует ли объект" Цитата:
Код:
Или можно сделать так: Код:
Далее: - Компоненты (и думаю в менеджере памяти) используют TList, TStrings и их наследники (например Owner хранит список своих подчиненных) А у этих объектов есть свойство Capacity, которое не уменьшается при удалении элемента. - Некоторые присоединяемые модули (особенно компонентов-оболочек над ActiveX виндов) создают у себя объекты уничтожаемые при завершении программы. Но в общем-то это (по моему) не должно увеличивать память каждый раз. И недавно прочитал про AQTime (посмотрите через Google) - инструменте для обнаружения утечек памяти и не только, совместимого с Delphi, но пока не пробовал. |
|
![]() |
![]() |
![]() |
#25 |
Пользователь
Регистрация: 25.06.2012
Сообщений: 39
|
![]()
что делать, если не помогает?!
Код:
|
![]() |
![]() |
![]() |
#26 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Код:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#27 |
Пользователь
Регистрация: 25.06.2012
Сообщений: 39
|
![]()
Аватар, так как лучше? Уничтожение модальной формы
весь свой код я выложил (направьте) Последний раз редактировалось Downloads; 22.07.2013 в 23:17. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Уничтожение потока | SNUPY | Общие вопросы Delphi | 2 | 11.02.2009 22:47 |
Автоматическое уничтожение объекта | mutabor | Общие вопросы Delphi | 6 | 25.06.2008 22:25 |
Создание/уничтожение объектов | nimf | Общие вопросы Delphi | 10 | 14.04.2008 10:54 |
Уничтожение окна | Kashp | Win Api | 20 | 07.09.2007 14:15 |