|
|
Регистрация | << Правила форума >> | 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
|
||||
|
||||
Спасибо
Спасибо, очень помог)
Если Вы находите ошибки, исправить которые дело долгое и нудное, ничего не делайте - просто внесите их в список особенностей |