Массив создан от первого элемента до 100го:
Код:
TThreadArray: array [1..100] of TThread;
а обращаетесь в цикле к 0ому элементу
Код:
for i:=0 to 20 do
TThreadArray[i] := TMyThread.Create(False);
Решение:
Код:
const ThCount = 20;
//...
var TThreadArray: array [0..ThCount] of TThread;
//...
for i:=0 to ThCount do
//...
И насколько я знаю, нельзя "менять" визуальные компоненты, а точнее любое из свойств в методе TThread.Execute.