![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как проверить создан ли TFileStream;
bbk © (2008-11-21 01:27:00)var
tmpStream : TFileStream;
begin
tmpStream := TFileStream.Create('d:\1.dat', fmCreate);
tmpStream.free;
...
if Assigned(tmpStream) then tmpStream.free; // Вылетает except ошибка
end;
В чем и вопрос, как правильно проверить, так как после free метода файлового потока Assigned(tmpStream) возвращает все равно истину.
{RASkov} (2008-11-21 13:04:00) [1]> [11] Правильный$Вася (21.11.08 13:01)
сорри... я не верно понял [9](
Правильный$Вася (2008-11-21 13:01:00) [2]
> Но память-то нужно отдать
естественно
{RASkov} (2008-11-21 12:48:00) [3]> [9] Правильный$Вася (21.11.08 12:26)
Но память-то нужно отдать :) Поэтому [7]...
Правильный$Вася (2008-11-21 12:26:00) [4]
> а вообще если у меня есть процедурка нужно в конце всегда
> обнулять созданный объект или free будет достаточно?
по выходе из процедурки у тебя эти переменные уже недоступны
Anatoly Podgoretsky (2008-11-21 08:56:00) [5]> bbk (21.11.2008 1:27:00) [0]
Очень просто, ничего проверять не надо, не засоряй себе мозги.
Германн (2008-11-21 02:01:00) [6]
> bbk (21.11.08 01:37) [6]
>
> а вообще если у меня есть процедурка нужно в конце всегда
> обнулять созданный объект или free будет достаточно?
>
Как правило достаточно. Всё остальное "от лукаваго"! :)
bbk (2008-11-21 01:37:00) [7]а вообще если у меня есть процедурка нужно в конце всегда обнулять созданный объект или free будет достаточно?
{RASkov} (2008-11-21 01:34:00) [8]> хендл все равно остается.
"битый"
{RASkov} (2008-11-21 01:33:00) [9]> После Free пременную сбрось в нил...
:) или в любую близлежащую реку...) т.е.:
tmpStream.free;
tmpStream:=nil;
.....
if Assigned(tmpStream) then
See also: FreeAndNil()
bbk (2008-11-21 01:33:00) [10]{RASkov} спасибо, что-то не допер был.
интересно девки пляшут...
bbk (2008-11-21 01:32:00) [11]что ещё не понятно, после
tmpStream.free;
ShowMessage(IntToStr(tmpStream.Handle));
хендл все равно остается.
с destroy такая же хрень.
как блин его удалить? (:
{RASkov} (2008-11-21 01:29:00) [12]> [0] bbk (21.11.08 01:27)
После Free пременную сбрось в нил...