How to hide (and again show) soft keyboard while TEdit is in focus DELPHI XE7

pudnivec74 picture pudnivec74 · Dec 10, 2014 · Viewed 15.5k times · Source

Can you help me how to hide (and again show) soft keyboard while TEdit is in focus?

Answer

pudnivec74 picture pudnivec74 · Dec 10, 2014

I have a solution:

  1. In the .dpr set VKAutoShowMode to Never

    begin
      Application.Initialize;
      VKAutoShowMode := TVKAutoShowMode.Never;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end. 
    
  2. Show soft keyboard on the form (for example on TEdit.OnEnter event):

    var
      FService: IFMXVirtualKeyboardService;
    begin
      TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService));
      if (FService <> nil) then
      begin
        FService.ShowVirtualKeyboard(Edit1);
        Edit1.SetFocus;
      end;
    
  3. Hide soft keyboard on the form (Edit1 will be still focused with hidden soft keyboard):

    var
      FService: IFMXVirtualKeyboardService;
    begin
      TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService));
      if (FService <> nil) then
      begin
        FService.HideVirtualKeyboard;
        Edit1.SetFocus;
      end;