Здраствуйте форумчане. Решил взяться за программирование, после небольшого изучения теории сел писать программу и сразу же наступил на грабли. Перед тем как написать перерыл форум, ничего похожего на свою проблему не нашёл

Суть такова, в программе присутствует динамический массив, где-то на просторах интернета нашёл код который демонстрирует как можно вручную заполнять массив. Принцип там такой - нажимаешь кнопку, программа спрашивает сколько элементов в массиве и далее создаёт поля TEdit под количество элементов. Сделал адаптацию под свои значения, но вот незадача компилируется всё без ошибок, однако окошко InputBox не появляется

не представляю в чём проблема, может кто-нибудь подскажет нубу как переступить через эти грабли.
Приведу код
Код:
unit qwe123qwe;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Arr: array of TEdit;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var c: string;
i,n:integer;
begin
c := InputBox('Vvedite','4islo:','');
try
n := StrToInt(c);
except
on EConvertError do ShowMessage('problem...');
end;
SetLength(Arr, n);
for i:=0 to n-1 do begin
Arr[i] := TEdit.Create(Self);
Arr[i].Parent := Self;
Arr[i].Top:=i*Arr[i].Height;
Arr[i].Left:=(ClientWidth-Arr[i].Width)div 2 ;
Arr[i].Text:='Ïîëå '+IntToStr(i);
end;
Button1.Visible:=False;
end;
end.
Спасибо за внимание, очень надеюсь на отклик.