Естественно, массивы должны быть как минимум на уровне формы.
Код:
type
TForm1 = class(TForm)
...
private
FEdits : Array Of TEdit;
procedure CreateMyEdits(N : Integer);
end;
procedure TForm1.CreateMyEdits(N : Integer);
var
C, I : Integer;
begin
C := Length(FEdits);
// Чистим все контролы
For I := Low(FEdits) To High(FEdits) Do FEdits[i].Text := '';
// Если у нас лишние контролы
If C > N Then
Begin
For I := N To High(FEdits) Do
Begin
FreeAndNil(FEdits[i]);
End;
SetLength(FEdits,N);
End;
// Если у нас не хватает контролов
If C < N Then
Begin
SetLength(FEdits,N);
For I := C-1 To High(FEdits) Do
Begin
FEdits[i] := TEdit.Create(Self);
...
End;
end;