Экранная клавиатура

Здравствуйте, пытаюсь работать в Delphi 10.2., планирую реализовать экранную клавиатуру, которая должна работать по аналогии со стандартной экранной клавиатурой Windows. Прощу подсказать как лучше реализовать или литературу где можно почитать.

Пробовал такие варианты:

1. Вызывал стандартную виртуальную клавиатуру windows osk.exe, но вариант работает не стабильно на разных версиях ОС.

DelphiВыделить код

| | |
| --- | --- |
| 1 | ShellExecute(0, nil, 'C:WINDOWSSYSTEM32osk.exe', nil, nil, SW_SHOWNORMAL); |

DelphiВыделить код

| | |
| --- | --- |
| 1 | WinExec('C:WINDOWSSYSTEM32osk.exe',SW_SHOWNORMAL); |

2. Использовал компонент "TTouchkeyboard"

2.1 Создавал компонент panel кидал на него клаву и пытался двигать, но клавиатура как будто проваливается ее не видно только фон ее отображается.

2.2 В приложении создавал отдельную форму и кидал на него компонент и потом вызывал форму но теряется фокус при нажатии на клавиши.

2.3 Также пробовал делать отдельно приложение с клавиатурой и формой не помогло.

3. Использовал компонент "TAdvPopupTouchkeyBoard" из комплекта "tms component pack" все хорошо, но не могу понять как менять раскладку.