Показать сообщение отдельно
  #3  
Старый 11.03.2021, 00:31
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Я бы сказал по друому.
Там промашка с размерами массива и циклом создания точно есть. А вообще, ссылки на созданные компоненты кроме как для уничтожения таковых нужны? Может им просто Owner'а указать и пусть уничтожением занимается форма когда сама будет уничтожена?
Это во первых. А во вторых, даже если ссылки нужны. Ты создаешь таблицу компонентов NxM, так почему бы и массив не объявить двухмерный и не заниматься ерундой?

Ну и так, как вишенка на торте. В процедуре setLength указваается КОЛ-ВО элементов, а не индекс последнего. Индексация динамических массивов всегда начинается с 0. Т.е. если тебе надо создать массив из 20 элементов, то и в SetLength надо передавать 20, а индексы у них будут от 0 до 19.
Ответить с цитированием