자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
C++ Builder 가상 키보드 크기가 정상적으로 넘어오지 않습니다.
2017.09.25 10:10
가상 키보드에 관련된 내용은 거의 셈플에 나와있는 VirtualKeyboardDemo를 기준으로 설명되어 있는데 테스트를 해보니 정상적인 크기를 넘겨 주지 못하고 있습니다.
소스에 한줄을 추가하여 넘어오는 값을 표시해주었습니다.
void __fastcall TVKBaseForm::FormVirtualKeyboardShown(TObject *Sender, bool KeyboardVisible,
const TRect &Bounds)
{
FKBBounds = TRectF(Bounds);
FKBBounds = TRectF(ScreenToClient(FKBBounds.TopLeft()),ScreenToClient(FKBBounds.BottomRight()));
UpdateKBBounds(); Label1->Text = String().sprintf(L"Keyboard Types %d, %d", Bounds.Top, Bounds.Bottom);
}
//---------------------------------------------------------------------------
사용 버젼은 됴쿄 10.2 릴리즈1 이고 테스트 장비는 LG - F600S입니다.
버그인것인지 아니면 잘못 이해한 것인지 모르겠습니다.
가상키보드의 높이를 구하는 방법을 알면 해결될듯한데 다른 방법은 없는지요?
감사합니다.
![Capture+_2017-09-25-10-00-10[1].png](http://tech.devgear.co.kr/./files/attach/images/131/508/436/e644e47d21b46e7183a68a7161f3fce8.png)
C++ Builder 가상 키보드 크기가 정상적으로 넘어오지 않습니다.
2017.09.25 10:10
가상 키보드에 관련된 내용은 거의 셈플에 나와있는 VirtualKeyboardDemo를 기준으로 설명되어 있는데 테스트를 해보니 정상적인 크기를 넘겨 주지 못하고 있습니다.
소스에 한줄을 추가하여 넘어오는 값을 표시해주었습니다.
void __fastcall TVKBaseForm::FormVirtualKeyboardShown(TObject *Sender, bool KeyboardVisible,
const TRect &Bounds)
{
FKBBounds = TRectF(Bounds);
FKBBounds = TRectF(ScreenToClient(FKBBounds.TopLeft()),ScreenToClient(FKBBounds.BottomRight()));
UpdateKBBounds(); Label1->Text = String().sprintf(L"Keyboard Types %d, %d", Bounds.Top, Bounds.Bottom);
}
//---------------------------------------------------------------------------
사용 버젼은 됴쿄 10.2 릴리즈1 이고 테스트 장비는 LG - F600S입니다.
버그인것인지 아니면 잘못 이해한 것인지 모르겠습니다.
가상키보드의 높이를 구하는 방법을 알면 해결될듯한데 다른 방법은 없는지요?
감사합니다.
![Capture+_2017-09-25-10-00-10[1].png](http://tech.devgear.co.kr/./files/attach/images/131/508/436/e644e47d21b46e7183a68a7161f3fce8.png)

해당 현상을 살펴보니 말씀하신 증상이 나타납니다.
안드로이드 환경에서
폼의 OnVirtualKeyboardShown 함수의 Bounds(키보드 영역) 파라메터의 값이 비정상적으로 작은 값이 넘어옵니다.
원인을 파악해보니 다음 이슈가 있었습니다.
- 이슈: 키보드가 표시되기 전에 해당 이벤트가 호출되어 키보드 표시하기 전의 키보드 영역이 Bounds 파라메터로 넘어옴
안드로이드에서 키보드 영역을 구해오는 방법은 아래와 같습니다.
uses
FMX.Platform.Android,
Androidapi.JNI.GraphicsContentViewText;