Quella classe era il nome di un TFrame creato da zero.
Non è una classe da utilizzare, è il nome di una classe di un semplice TFrame, nulla di più nulla di meno.
Non sono eventi, sono metodi.
Sì, ma quella implementazione - nella sua incarnazione specifica - funzionava senza problemi: bisogna vedere come è stata modificata in seguito e quale codice è stato aggiunto che non è correlato specificatamente alla gestione dei Frame in sé (es. logiche di business).
Io avrei creato una proprietà ad hoc: la proprietà Hint serve ad altro e piegarla a utilizzi diversi è fuorviante, oltre al fatto che potrebbero servire potenzialmente altre proprietà per veicolare più informazioni, quindi meglio aggiungere proprietà pubbliche per i propri scopi, con un nome che indichi a cosa servono.
C'è qualcosa in quella gestione che non funziona o "calpesta" i piedi a porzioni di codice in cui non si deve passare.
Non posso dirti cosa non va con gli elementi che abbiamo in mano.
Fai debug passo per passo e verifica cosa avviene nel flusso di lavoro dell'applicazione.
Se non è nemmeno sicuro che il codice sia esattamente quello che hai scritto, come si fanno a dare indicazioni?
Ad ogni modo, rilancio l'idea di fare debug passo per passo mettendo appositi breakpoint nei punti nevralgici e verificando lo stato delle variabili e il valore rispetto a quello atteso, e come si arriva a determinati punti nella sequenza di istruzioni che viene eseguita.