Kann es sein, dass das TouchKeyboard Probleme hat, wenn die Anwendung nicht den Fokus hat und man da den Status ändert?
Das selbe Problem sollte dann aber auch auftauchen, wenn man eine andere virtuelle Tastatur zwischendrin nutzt oder z.B. RDP/TeamViewer/...
TTouchKeyboard.WMKeyUp ?
Die virtuelle Tastatur sollte aber niemals den Eingabefokus bekommen und somit doch eigentlich auch keine WM_KEY bekommen.
Der Fokus bleibt eigentlich in dem Edit, wo man was rein schreibt.
Wenn was übersehen wurde, dann könnte man vielleicht allgemein bei
KeyUp KeyDown auf alle Tasten reagieren.
Die Locked-Keys reagieren auf das Niederdrücken, mit der Statusänderung, und auch bei den anderen Tasten ist bereits der Status während des Niederdrückens wichtig.
Dort vor der Tastenbehandlung (inherited) den aktuellen Status des Tastaturpuffers mit dem des TTouchKeyboard vergleichen und bei Differenzen das WM_INPUTLANGCHANGE losschicken.
Alternativ auch beim Activate der Application den aktuellen Status neu laden.