Я бы сказал по друому. 
Там промашка с размерами массива и циклом создания точно есть. А вообще, ссылки на созданные компоненты кроме как для уничтожения таковых нужны? Может им просто Owner'а указать и пусть уничтожением занимается форма когда сама будет уничтожена? 
Это во первых. А во вторых, даже если ссылки нужны. Ты создаешь таблицу компонентов NxM, так почему бы и массив не объявить двухмерный и не заниматься ерундой? 
 
Ну и так, как вишенка на торте. В процедуре setLength указваается КОЛ-ВО элементов, а не индекс последнего. Индексация динамических массивов всегда начинается с 0. Т.е. если тебе надо создать массив из 20 элементов, то и  в SetLength надо передавать 20, а индексы у них будут от 0 до 19. 
		
	
		
		
		
		
		
	
		
		
	
	
	 |