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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> create,free, нужно ли уничтожать созданные обьекты 
:(
    Опции темы
SlaUr
Дата 14.3.2007, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



У меня такой вопрос ,допустим я хочу использовать в программе list:tsringlist
Создаем List:
Код

procedure TForm1.FormCreate(Sender: TObject);
begin
  List:=TStringList.Create;
end

Пользуемся в программе List
при закрытии программы уничтожаем его:
Код

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
List.Free;
end;


Это так положено делать - уничтожать обьект,а если я его допустим при завершении программы его не уничтожу , произойдет ли утечка памяти или память освободится сама собой при закрытии программы?

Т.е. принципиальное ли правило уничтожать те динамические обьекты которые создаются при работе программы или это просто общепринятое правило?
PM MAIL   Вверх
MetalFan
Дата 14.3.2007, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

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



SlaUr, вся память, занятая под нужды процесса, освободиться при завершении процесса, но считается правильным "положить обратно, где взял"...

Это сообщение отредактировал(а) MetalFan - 14.3.2007, 09:12


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Sunvas
Дата 14.3.2007, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

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



Цитата(SlaUr @  14.3.2007,  09:10 Найти цитируемый пост)
Т.е. принципиальное ли правило уничтожать те динамические обьекты которые создаются при работе программы или это просто общепринятое правило?

Если ты временно создаешь объект, то да. Но если ты делаешь уничтожение объекта при закрытии программы, то это лишнее т.к. 
Цитата(MetalFan @  14.3.2007,  09:12 Найти цитируемый пост)
 вся память, занятая под нужды процесса, освободиться при завершении процесса

 smile 


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
SlaUr
Дата 14.3.2007, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо за ответы
PM MAIL   Вверх
Rennigth
Дата 14.3.2007, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Sunvas @  14.3.2007,  09:44 Найти цитируемый пост)
то это лишнее

 smile  Совсем не лишнее. 
Память то освободиться, а если объект при разрушении должен еще что-то делать... (Стереть за собой временные файлы или еще что). Это должно войти в привычку. Взял-отдал, как еще раз напомнил MetalFan.   smile 
 


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Yanis
Дата 14.3.2007, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Sunvas @  14.3.2007,  10:44 Найти цитируемый пост)
Но если ты делаешь уничтожение объекта при закрытии программы, то это лишнее т.к. 

К слову сказать, я всё равно все созданные в процессе работы, например глобальные классы, уничтожаю перед закрытием формы. Ну так вот я сделан smile


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Sunvas
Дата 14.3.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

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



Цитата(Rennigth @  14.3.2007,  10:34 Найти цитируемый пост)
 (Стереть за собой временные файлы или еще что).

Это уже отдельные случаи.
Цитата(Yanis @  14.3.2007,  10:50 Найти цитируемый пост)
К слову сказать, я всё равно все созданные в процессе работы, например глобальные классы, уничтожаю перед закрытием формы.

 smile  привычка хорошая, но иногда это просто не нужно.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
MetalFan
Дата 14.3.2007, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

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



Цитата(Sunvas @  14.3.2007,  12:52 Найти цитируемый пост)
иногда это просто не нужно

ага, например просто TerminateProcess и все)


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
aktuba
Дата 14.3.2007, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

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



MetalFan, это уже клиника =)))))


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Sunvas
Дата 14.3.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

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



Цитата(MetalFan @  14.3.2007,  14:08 Найти цитируемый пост)
ага, например просто TerminateProcess и все)

И такое иногда надо. Когда, например компонент глючный попался и нет желание перевать миллионы строк кода чтобы найти ошибку.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Rennigth
Дата 14.3.2007, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



ИМХО, тогда такой "компонент" надо выкинуть smile


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
yus
Дата 16.3.2007, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Просто культура программирования должна быть, поэтому надо выработать привычку, взял - отдай, и читаемость кода повышается.

PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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