Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2008, 13:12   #1
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
Вопрос Что будет с выделенной памятью?

Подскажите, чем черевато использование вот такой структуры, а конкретно, что будет с памятью:
Код:
TMyClass = class
  ...
  F1, F2, F3: String;
  ...
end;

...

with TMyClass.Create do begin
  ShowMessage (F1 + F2 + F3);
end;
Sibedir вне форума Ответить с цитированием
Старый 18.01.2008, 13:16   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

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

var C:TMyClass;

C := TMyClass.create;
try
with C ....

finally
C.free;
end;
alexBlack вне форума Ответить с цитированием
Старый 18.01.2008, 13:19   #3
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

А так, должно быть все нормально?
Код:
with TMyClass.Create do begin
  ShowMessage (F1 + F2 + F3);
  Free;
end;
::: Дико извиняюсь, что поднял такую тему. Просто думал, а вдруг, такая структура сама все разрулит. Вроде же ни куда ссылку на выделенную память не записывали. Вдруг разработчики что-то предусмотрели.

Последний раз редактировалось Sibedir; 18.01.2008 в 13:23.
Sibedir вне форума Ответить с цитированием
Старый 18.01.2008, 13:21   #4
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Нормально. Просто я перпочитаю заключать в try / finally. Да и поля F1, F2, F3 нужно бы определить использую констрактор
alexBlack вне форума Ответить с цитированием
Старый 18.01.2008, 13:22   #5
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
поля F1, F2, F3 нужно бы определить использую констрактор
У меня так и есть. Это просто пример.
Sibedir вне форума Ответить с цитированием
Старый 18.01.2008, 13:26   #6
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Просто думал, а вдруг, такая структура сама все разрулит. Вроде же ни куда ссылку на выделенную память не записывали. Вдруг
разработчики что-то предусмотрели.
Это же не С++. Можно еще наследовать от интерфейсов. Были примерчики, в которых объекты сами себя уничтожали - у интерфейсов это обычное дело
alexBlack вне форума Ответить с цитированием
Старый 18.01.2008, 13:30   #7
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Можно еще наследовать от интерфейсов - эта мысль мне еще пригодится
Sibedir вне форума Ответить с цитированием
Старый 18.01.2008, 13:32   #8
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Ладно, не придирайся. Понятно же о чем речь
alexBlack вне форума Ответить с цитированием
Старый 18.01.2008, 13:33   #9
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Ладно, не придирайся. Понятно же о чем речь
alexBlack вне форума Ответить с цитированием
Старый 18.01.2008, 13:57   #10
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Да не, мне наоборот понравилось. Хотел даже одобрительную оценку сделать, но почему-то не получилось (страничка виснит и все)
Sibedir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получения номера страницы по выделенной ячейки brezze Microsoft Office Excel 1 11.07.2008 22:06
Проблема с памятью в С++ rJIaBkoM Помощь студентам 1 14.06.2008 14:25
Определение выделенной ячейки в таблице в Delphi Гео Помощь студентам 3 13.06.2008 14:51
доступ к элементам выделенной строки в DBGrid yulia БД в Delphi 2 12.12.2007 12:51