K>>Я не понимаю суть этого кода. Например где хранится счётчик, сколько элементов s было создано? И в каких участках кода проверяется, не пора ли удалить неиспользуемые элементы?
M>Счётчик и проверка хранится внутри реализации класса Shared<>
Вы явно что-то путаете с моими примерами. Когда в последнем коде вызывается s := TStringList.Create; , вообще причём здесь Shared? Обычное присвоение переменной созданного экземпляра класса TStringList.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.