[Delphi] 델파이 FMX 키보드 표시, 숨기기

    728x90

    안녕하세요

    로로봉입니다 : )

    델파이에서 가상 키보드를 제어해보도록 하겠습니다.

    델파이 FireMonkey 에서 가상 키보드를 제어하기 위해 아래의 2가지를 uses에 추가해주어야 합니다.

    uses
      FMX.Platform, FMX.VirtualKeyboard;

     그리고 아래의 함수를 이용해 키보드가 표시되고 있는 상태인지 아닌지를 확인할 수 있습니다.

    function TfrmMain.KeyboardState: Boolean;
    var
      FService : IFMXVirtualKeyboardService;
    begin
      TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService));
      if (FService <> nil) then
      begin
        if (TVirtualKeyboardState.Visible in FService.VirtualKeyBoardState) then
          Result := True
        else
          Result := False;
      end;
    end;

    키보드가 표시된 상태라면 True / 키보드가 표시되어 있지 않다면 False가 반환됩니다.


    소스상에서 키보드를 활성화하고 비활성화하는 처리는 아래와 같이 함수를 만들어 호출해 주면 됩니다.

    procedure TfrmMain.KeyboardShow(Sender: TObject);
    var
      FService : IFMXVirtualKeyboardService;
    begin
      TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService));
      if (FService <> nil) then
      begin
        FService.ShowVirtualKeyboard((Sender as TEdit));
      end;
    end;
    
    procedure TfrmMain.KeyboardHide;
    var
      FService : IFMXVirtualKeyboardService;
    begin
      TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService));
      if (FService <> nil) then
      begin
        FService.HideVirtualKeyboard;
      end;
    end;

     

    좋아요 ♥ + 구독 부탁드립니다 : )

    728x90
    반응형

    댓글