![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Здравствуйте, давно подозревал в Делфи какую-то странную ошибку и наконец понял откуда исходит подобное, вопрос очень интересный, т.к. такого по идее не должно быть
![]() Смотрите код: Код:
var o:TObject; {Глобальная переменная, без разницы} procedure TForm1.FormCreate(Sender: TObject); begin o:=TObject.Create; end; Procedure TForm1.Del(Ob:TObject); begin FreeAndNil(ob); end; procedure TForm1.Button1Click(Sender: TObject); begin FreeAndNil(o); {Вариант первый, всё работает} //Del(o); {Вариант второй, ошибка !!!} end; а вот если мы используем второй вариант ( вызываем процедуру, которая это делает), то почему-то возникает ошибка при повторном нажатии ![]() Я не знаю что делать, помогите, в чем проблема ? ![]() P.S. у меня Delphi 7, у другого человека тоже седьмая, и тоже аналогичная ситуация с ошибкой ![]() Вложил пример, если думаете, что я в чем-то ошибся. Что делать ? Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей ![]() |
#2
|
||||
|
||||
![]() Код:
Procedure TForm1.Del(var Ob:TObject); begin FreeAndNil(ob); end; ...сказал, и загрустил от бесспорной своей правоты |
#3
|
||||
|
||||
![]() Спасибо, очень помог)
![]() Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей ![]() |