во первых n надо объявить
Код:
procedure TForm1.Button2Click(Sender: TObject);
var n:integer;
begin
Label1.Caption:=inttostr(chisla2(n));
end;
потом,
begin
setlength(a,0);
for i:=0 to 100 do
try
l:=a[i];
setlength(a,length(a)+1);
Админ: Не забываем про оформление кода!
вы пытаетесь переменной l присвоить значение несуществующего номера массива (длинну массива сделали 0)