Код:
Count := Сount + 1; //<-Даю порядковый номер след. обьекта
Это несколько не так, на самом деле вы увеличиваете массив, поэтому следующая инструкция вообще не в тему.
Когда вы обращаетесь к свойству Count происходит вызов функции GetCount, а когда присваиваете Count какое либо значение, происходит уже вызов процедуры SetCount, поэтому когда вы пишете:
на самом деле будет выполнен такой код:
Кроме того надо иметь ввиду, что отсчет элементов в динамическом массиве идет от нуля, поэтому ваша запись:
будет вызывать ошибку, ведь Count возвращает количество элементов, а это число всегда больше на единицу, чем индекс последнего элемента. Следовательно надо так:
Надеюсь все подробно расписал.