ho modificato il codice usando una lista invece che un vettore, non ricevo errori, solo che non viene generato un cavolo

codice:
type  tipoMemo=^TipoRecMemo;
      TiporecMemo=record
                    altezza:integer;
                    numero:integer;
                    next:tipoMemo;
                end;

var
  Form1: TForm1;
  num:TipoMemo;
implementation

{$R *.dfm}

procedure TForm1.btnNuovaClick(Sender: TObject);
var i:integer;
    X:TipoMemo;
begin
  i:=0;
  with TMemo.Create(self) do
  begin
    i:=i+1;
    new(X);
    if i=1 then
      begin
        X^.altezza:=2;
        X^.numero:=i;
        top:=X^.altezza;
        name:='Memo'+ IntToStr(X^.numero);
        i:=i+1;
      end
    else begin
      new(X);
      top:=90+X^.altezza;
      name:='Memo'+ IntToStr(X^.numero);
      i:=i+1;
  end;
  end;
end;

end.