|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.03.2009, 13:51 | #21 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
есть еще такая возможность убивать объекты - FreeAndNil(имя_объекта)
но формы лучше всего дестроить именно Release если форма используется многократно, то может имеет смысл ее не убивать, а создать при первом вызове, а дальше только хайдить и при необходимости снова показывать?! |
22.03.2009, 19:32 | #22 |
Форумчанин
Регистрация: 03.10.2008
Сообщений: 180
|
Все описанное выше - правильно. Но кто нибудь проверял диспетчером задач свое приложение, сколько оно места занимает? Понакидайте на форму, которую создаем как "доступную", побольше разных компонентов (ListView). Coздайте две кнопочки: одна будет создавать форму, другая уничтожать. Обратите внимание, сколько ваша программа занимает. Проделайте десяток процедур по созданию-уничтожению формы, и сравните занимаемую память с начальной величиной. Так что получается, что не в программе дело а в виндоусе, который не хочет сразу освобождать память. Возможно он и освобождает, но она числится как используемая.
лучший подарок женщине-программисту
|
22.03.2009, 21:48 | #23 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
резервирование памяти...то есть винда оставляет память за приложением(а вдруг понадобится ему)...поидее если недостаток памяти она должна её перераспределить...а на практике хрен знает
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
23.03.2009, 11:34 | #24 | |
Форумчанин
Регистрация: 28.09.2008
Сообщений: 344
|
Набросал небольшой тест ( на Delphi 7 )
Вложение 9817 (правда там модальная форма пока пустая - можете продолжить с разным заполнением). Поправлю немного Antony41 Assigned(const P) - не проверяет "существует ли объект" Цитата:
Код:
Или можно сделать так: Код:
Далее: - Компоненты (и думаю в менеджере памяти) используют TList, TStrings и их наследники (например Owner хранит список своих подчиненных) А у этих объектов есть свойство Capacity, которое не уменьшается при удалении элемента. - Некоторые присоединяемые модули (особенно компонентов-оболочек над ActiveX виндов) создают у себя объекты уничтожаемые при завершении программы. Но в общем-то это (по моему) не должно увеличивать память каждый раз. И недавно прочитал про AQTime (посмотрите через Google) - инструменте для обнаружения утечек памяти и не только, совместимого с Delphi, но пока не пробовал. |
|
22.07.2013, 22:28 | #25 |
Пользователь
Регистрация: 25.06.2012
Сообщений: 39
|
что делать, если не помогает?!
Код:
|
22.07.2013, 22:36 | #26 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Код:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
22.07.2013, 22:55 | #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 |