Osservando il tuo codice, non vi è traccia delle istruzioni di creazione dei form, sia del primario che del secondario.

Quindi, suppongo che la creazione avvenga in automatico, nel corpo principale del programma (come generalmente accade per impostazione predefinita in Delphi, cosa che non condivido).

Il problema è dato dal fatto che l'inizializzazione del form secondario sfruttando il Numero memorizzato nell'apposito campo avviene all'interno dell'evento OnCreate; quando imposti il valore di quel campo, in verità, il form è già stato creato, quindi il codice di inizializzazione è già stato eseguito; il risultato che ottieni, quindi, è la semplice visualizzazione del form con i controlli visuali inizializzati precedentemente all'impostazione del numero di controlli, che non sortisce alcun effetto.

Le soluzioni possibili sono due: spostare il codice di inizializzazione all'interno dell'evento OnShow o, manovra ideale, creare dinamicamente il form quando è necessario, inizializzandolo a dovere, usando il costruttore Create, analogamente a quanto si fa nel controllo.

Puoi trovare le istruzioni necessarie per fare questo nel corpo principale del programma, in cui Delphi inserisce appunto tali comandi per creare i form all'avvio dell'applicazione.

Ciao!