To change current language, use LoadKeyboardLayout function. For example, first parameter 0x0407 is German (standard), 0x0409 is English (U.S.).
procedure TForm1.Button1Click(Sender: TObject); begin LoadKeyboardLayout('00000407', KLF_ACTIVATE); end;