Пояснение:
Переменная a
станет nil
только когда ей присвоено nil
. Это означает, что в коде должен быть a := nil
, который сейчас отсутствует.
Free - это просто метод, работающий с экземпляром класса Ta
. Free уничтожает тот экземпляр, на который указал a
. Значение из a
остается тем же и теперь указывает на адрес памяти, где когда-то был Ta
экземпляр.
Решение:
Используйте FreeAndNil(a)
, чтобы одновременно уничтожить объект, на который указывает переменная, и обнулить переменную.