Это потому, что вы никогда не назначаете значение свойству b
. Таким образом, он имеет значение по умолчанию (ноль), и потоковая система не сохранит его в потоке. И поскольку он не находится в потоке, вы не увидите вызывающего сеттера при его чтении ...
На самом деле, поскольку вы также не присваиваете значение свойству a
, то же самое должно произойти и с ним. Выглядит как ошибка (или, по крайней мере, несоответствие) в потоковой системе:
- либо не следует сохранять / загружать свойство
Integer
с нулевым значением в поток,
- или он должен сохранять / загружать их оба, поскольку в определении свойств нет спецификатора
default
и, следовательно, следует принимать nodefault
и, следовательно, значение всегда должно быть потоковым.
Итак, подведем итоги: добавьте TestClass.b := 1;
перед вызовом TestClass.SaveInstance(Str);
, и вы должны увидеть вызывающий установщик при загрузке объекта обратно из потока, но вы не можете ретранслировать в потоковой системе вызов вызывающего, когда свойство имеет значение по умолчанию для типа.