La frase "provoca un errore" sta ad indicare che il comportamento del codice non è quello che ti aspetti o che viene proprio generata un'eccezione quando tenti di richiamare il metodo SetFocus.
Se il caso è quest'ultimo, quale tipo di errore viene generato?
Percaso è "Cannot focus a disabled or invisible window" o qualcosa del genere?
Occorre dire che creazione e visualizzazione sono due operazioni distinte. Quando crei il frame, allochi nella pratica tutte le strutture dati che servono per mantenerne in memoria i dati: queste sono strutture Delphi, a cui segue l'allocazione delle strutture Windows, cioè quelle strutture che appartengono invece al sistema operativo per poter gestire il controllo visuale, inviare ad esso dei messaggi in corrispondenza del movimento del mouse e della pressione di tasti.
Nel momento in cui tu fai la SetFocus, forse non sono ancora state allocate le strutture dati Windows per il controllo visuale su cui si sta cercando di impostare il focus.
Controlla che non vi sia una ulteriore chiamata a SetFocus nel codice del frame, ma solo nel codice del contenitore, richiamato quando devi creare un nuovo frame (in pratica, il codice che hai inviato).
Ciao!![]()