개발 정보/델파이

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

RoRoBong 2021. 1. 19. 09:07
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
반응형