Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Ошибка после закрытия программы


Автор: pushok 27.8.2009, 23:17
Вылезает ошибка при закрытии программы. При этом у компилированной программы проблемы нет.

Смотрел в поиске, написано, что такая ошибка вылетает при неправильном высвобождении памяти.

я пользуюсь только TFileStream (т.е. tf.free)

или возможно у меня есть запись:

A=record
img:TBirmap;
txt:TStringList;
end;

в которой не всегда используются поля img и txt, т.е. img:=TBitmap.Create не всегда выполняется.

Это проблема или надо просто забить на это?
Если проблема, то как её исправить?

Автор: CodeMonkey 27.8.2009, 23:22
Ну и вопрос.... 

Совет: переформулировать. Добавить сообщения об ошибках, показать код. Иначе народ будет стебаться.

Автор: bems 28.8.2009, 02:54
Цитата(pushok @  27.8.2009,  23:17 Найти цитируемый пост)
в которой не всегда используются поля img и txt, т.е. img:=TBitmap.Create не всегда выполняется.

Это проблема или надо просто забить на это?

Если ты в любом случает пытаешся уничтожить эти объекты - то да, это проблема

Автор: niteo 28.8.2009, 08:10
Цитата(pushok @  27.8.2009,  23:17 Найти цитируемый пост)
в которой не всегда используются поля img и txt, т.е. img:=TBitmap.Create не всегда выполняется.


Могу догадаться что ты освобождаешь ресурсы по завершении приложения. Если так
то надо смотреть, если объект не создан, то и не надо освобождать.

Автор: WandG 28.8.2009, 09:57
Пользуйтесь конструкцией
Код

MyObject := TMyObject.Create;
try
    ....
finally
   FreeAndNil(MyObject);
end;


А если в не всегда используете поля img и txt, то в самом начале следайте
Код

Arec.img := nil;
Arec.txt := nil;


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)