자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi [질문] 자판을 입력할 수 없네요
2020.02.20 23:17
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
델파이 XE 10.3.3을 사용해서 앱을 만드는데요
Edit1 에 커서가 있고
키보드를 보이게하는 버튼을누르면
procedure TfmNorMove.Button5Click(Sender: TObject);
begin
VKAutoShowMode :=TVKAutoShowMode.DefinedBySystem;
KeyboardHide;
end;
키보드가 나오면서 Focus가 Edit에서 없어집니다.
그러니까 키보드의 값을 Edit에 입력할 수가 없습니다.
XE 10.3.2에서는 정상 가동되던게 10.3.3에서 실행하면 이런증상이
있네여
어떻게하면 Edit에 Focus가 그대로 있고 글씨를 입력받을수 있을까요?
댓글 3
-
silkroad99
2020.02.21 10:53
-
화현
2020.02.22 15:51
실크로드님 답변에 감사드립니다.
제가 구현하려하는거는
바코드 스캔을 하는 프로그램인데요 , 그러다보니 edit에 포커스가 갈때 자동으로 키보드가 보이면 불련하거든요
그래서 edit에 포커스가 가면 자동으로 키보드가 보이면 안되구요
어떤 특정버트을 누를때 키보드가 보여야합니다.
그래서
1) edit에 포커스가 있고
2) button 을 누르고 키보드를 보입니다
procedure TfmNorMove.Button5Click(Sender: TObject);
begin
VKAutoShowMode :=TVKAutoShowMode.DefinedBySystem;
KeyboardHide;
end;
3) 문제는 이때발생합니다.
edit의 포커스가 없어집니다.
그래서 키보드의 내용을 edit에 입력할 수 가 없습니다.
>> 그런데 이 증상이 XE 10.3.1 에서는 이상이 없었구요
소스 그대로 XE10.3.3 (64비트 컨버젼 때문) 에서 실행하니
이런 증상이 나옵겁니다.
물론 10.3.3에서 32비트로 컴파일해도 증상은 동일합니다.
-
silkroad99
2020.02.25 11:09
네...그런이유로 키보드를 숨기려 하신거군요
여기에 예제로 되어있는 PM3바코드 모듈이
잘 정리되어있던것으로 기억합니다.
저도 그 모듈로 실제 업무에서 이상없이
사용하고 있습니다.
아마도 SPP모드로 설정해서 사용하시면
키보드 위치와 상관없이 스캔 됩니다.
일반 PC에서 USB모드는 키보드 포커스와
상관이 있지만 COM포트 모드는 현재 키보드
포커스와 상관없이 구동이 되는 원리와 같습니다.
험프리 김현수님의 자료를 찾아보시고 하시면
가능합니다. 그럼 수고하세요
Delphi [질문] 자판을 입력할 수 없네요
2020.02.20 23:17
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
델파이 XE 10.3.3을 사용해서 앱을 만드는데요
Edit1 에 커서가 있고
키보드를 보이게하는 버튼을누르면
procedure TfmNorMove.Button5Click(Sender: TObject);
begin
VKAutoShowMode :=TVKAutoShowMode.DefinedBySystem;
KeyboardHide;
end;
키보드가 나오면서 Focus가 Edit에서 없어집니다.
그러니까 키보드의 값을 Edit에 입력할 수가 없습니다.
XE 10.3.2에서는 정상 가동되던게 10.3.3에서 실행하면 이런증상이
있네여
어떻게하면 Edit에 Focus가 그대로 있고 글씨를 입력받을수 있을까요?
댓글 3
-
silkroad99
2020.02.21 10:53
-
화현
2020.02.22 15:51
실크로드님 답변에 감사드립니다.
제가 구현하려하는거는
바코드 스캔을 하는 프로그램인데요 , 그러다보니 edit에 포커스가 갈때 자동으로 키보드가 보이면 불련하거든요
그래서 edit에 포커스가 가면 자동으로 키보드가 보이면 안되구요
어떤 특정버트을 누를때 키보드가 보여야합니다.
그래서
1) edit에 포커스가 있고
2) button 을 누르고 키보드를 보입니다
procedure TfmNorMove.Button5Click(Sender: TObject);
begin
VKAutoShowMode :=TVKAutoShowMode.DefinedBySystem;
KeyboardHide;
end;3) 문제는 이때발생합니다.
edit의 포커스가 없어집니다.
그래서 키보드의 내용을 edit에 입력할 수 가 없습니다.
>> 그런데 이 증상이 XE 10.3.1 에서는 이상이 없었구요
소스 그대로 XE10.3.3 (64비트 컨버젼 때문) 에서 실행하니
이런 증상이 나옵겁니다.
물론 10.3.3에서 32비트로 컴파일해도 증상은 동일합니다.
-
silkroad99
2020.02.25 11:09
네...그런이유로 키보드를 숨기려 하신거군요
여기에 예제로 되어있는 PM3바코드 모듈이잘 정리되어있던것으로 기억합니다.
저도 그 모듈로 실제 업무에서 이상없이
사용하고 있습니다.
아마도 SPP모드로 설정해서 사용하시면
키보드 위치와 상관없이 스캔 됩니다.
일반 PC에서 USB모드는 키보드 포커스와
상관이 있지만 COM포트 모드는 현재 키보드
포커스와 상관없이 구동이 되는 원리와 같습니다.
험프리 김현수님의 자료를 찾아보시고 하시면
가능합니다. 그럼 수고하세요
지금은 키보드를 숨김으로 적용하신거 아닌가요
예를들면
var
FService : IFMXVirtualKeyboardService;
begin
if Key = vkHardwareBack then
begin
TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService));
if (FService <> nil) and (TVirtualKeyboardState.Visible in FService.VirtualKeyBoardState) then
begin
FService.HideVirtualKeyboard;
Key := 0;
Exit;
end;
end;
제가 알기에는 edit에 포거스가 가면 자동으로 키보드가 보입니다.