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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2015, 12:58   #1
Turbine
Пользователь
 
Регистрация: 13.08.2008
Сообщений: 76
Злость tStringlist отказывает умирать на выходе из программы

Добрый день!

Не срабатывает с одним (из нескольких) tstringlist
Код:
FreeAndNil(temp_1);
Со всеми оставшимися проблем нет.:
Turbine вне форума Ответить с цитированием
Старый 10.04.2015, 13:13   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

как проверяете что не сработало?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.04.2015, 13:15   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Не срабатывает с одним (из нескольких) tstringlist
Что такое "не срабатывает"?
Цитата:
отказывает умирать на выходе из программы
Остается жить после завершения программы?!!!
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 10.04.2015, 13:37   #4
Turbine
Пользователь
 
Регистрация: 13.08.2008
Сообщений: 76
По умолчанию

Проверятся так :

Код:
TRY   if temp_1<>NIL then FreeAndNil(temp_1);  EXCEPT SHOWMESSAGE('Err_');  END;
Далее показывается messagebox.
Turbine вне форума Ответить с цитированием
Старый 10.04.2015, 13:50   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вообще-то temp_1<>NIL не значит, что он живой. Например temp_1.Free убивает, но указатель не очищает
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.04.2015, 14:05   #6
Turbine
Пользователь
 
Регистрация: 13.08.2008
Сообщений: 76
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Вообще-то temp_1<>NIL не значит, что он живой. Например temp_1.Free убивает, но указатель не очищает
С момента создания только добавлялись строки add и периодически clear.

Как проверить существование без учета NIL?
Turbine вне форума Ответить с цитированием
Старый 10.04.2015, 15:39   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Turbine Посмотреть сообщение
С момента создания только добавлялись строки add и периодически clear.

Как проверить существование без учета NIL?
никак, обнуляйте указатель всегда.

exception означает именно что он уже убит был кстати
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.04.2015, 16:03   #8
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Цитата:
С момента создания только добавлялись строки add и периодически clear.
2 ссылки дадут тот же резалт
lomastr_ вне форума Ответить с цитированием
Старый 10.04.2015, 19:54   #9
Turbine
Пользователь
 
Регистрация: 13.08.2008
Сообщений: 76
По умолчанию

Ситуация решилась абсолютно дурацким (антинаучным) способом - переставил из строчку temp_1 : tStringList; из одного места public в другое. И все начало фринилиться без исключений.
Turbine вне форума Ответить с цитированием
Старый 10.04.2015, 20:01   #10
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

повезло.

неинициализированная глобальная переменная наконец-то получила правильное значение (nil).
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подтверждения при выходе из программы Ayubkhon Общие вопросы Delphi 18 18.06.2013 00:53
Сохранение состояние Button - а при выходе из программы! JunioR_BK Помощь студентам 3 16.07.2012 20:46
Окно запроса при выходе из программы Shouldercannon Общие вопросы Delphi 9 10.07.2012 15:15
Ошибка при выходе из программы Warn Общие вопросы Delphi 3 07.11.2011 16:16
Зависание программы при выходе codermoder Работа с сетью в Delphi 6 18.12.2010 23:16