자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey ScrollBox안에 Edit 가상키보드 문제..
2021.07.14 17:17
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요 Firemonkey로 안드로이드 앱을 제작하고 있는 개발자입니다.
Scrollbox안에 Edit를 올려두고 앱에서 스크롤시 Edit에 포커스가 들어가서 가상키보드가 나옵니다.
사용자가 정확히 edit를 클릭할때만 가상키보드가 올라와 작성하게끔 하고싶은데 어떻게 처리해야될까요?
댓글 4
-
지병철
2021.07.15 10:38
-
운직
2021.07.15 16:33
ScrolBox에 Layout, GridPanelLayout을 놓고 Edit를 놓았습니다 스크롤은 잘되지만 스크롤이 되면서 Edit에 포커스가 들어가(Edit위를 잡고 스크롤할경우) 가상키보드가 올라옵니다..사용자가 스크롤할때는 Edit에 포커스가 안들어갔으면 합니다
-
지병철
2021.07.16 09:54
간단히 구현해 보았습니다.
1. 폼 변수 FScroll: Boolean; 을 선언합니다.
2. Scrollbox 가 움직일 때는 FScroll := True; 처리 합니다.
3. 모든 TEdit Components 의 Events 에서 아래의 소스와 같이 처리합니다
procedure TForm1.Edit1Click(Sender: TObject);
begin
if not FScroll then
begin
Edit1.CanFocus := True;
Edit1.SetFocus;
end;
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
Edit1.CanFocus := False;
end;
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Single);
begin
FScroll := False;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Edit1.CanFocus := False;
end;
procedure TForm1.ScrollBox1ViewportPositionChange(Sender: TObject;
const OldViewportPosition, NewViewportPosition: TPointF;
const ContentSizeChanged: Boolean);
begin
FScroll := True;
end;
- 이상 -
-
지병철
2021.07.16 10:08
모든 TEdit Components의 이벤트를 개별로 만들어의 코딩을 하는 것 보다. OnOuseDown, OnExit, OnClick 이벤트 함수를 하나씩만 만들어서 모든 TEdit Compents에서 공유해서 쓰면 스코드가 간단해 질 것 같습니다.
Firemonkey ScrollBox안에 Edit 가상키보드 문제..
2021.07.14 17:17
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
안녕하세요 Firemonkey로 안드로이드 앱을 제작하고 있는 개발자입니다.
Scrollbox안에 Edit를 올려두고 앱에서 스크롤시 Edit에 포커스가 들어가서 가상키보드가 나옵니다.
사용자가 정확히 edit를 클릭할때만 가상키보드가 올라와 작성하게끔 하고싶은데 어떻게 처리해야될까요?
댓글 4
-
지병철
2021.07.15 10:38
-
운직
2021.07.15 16:33
ScrolBox에 Layout, GridPanelLayout을 놓고 Edit를 놓았습니다 스크롤은 잘되지만 스크롤이 되면서 Edit에 포커스가 들어가(Edit위를 잡고 스크롤할경우) 가상키보드가 올라옵니다..사용자가 스크롤할때는 Edit에 포커스가 안들어갔으면 합니다
-
지병철
2021.07.16 09:54
간단히 구현해 보았습니다.
1. 폼 변수 FScroll: Boolean; 을 선언합니다.
2. Scrollbox 가 움직일 때는 FScroll := True; 처리 합니다.
3. 모든 TEdit Components 의 Events 에서 아래의 소스와 같이 처리합니다
procedure TForm1.Edit1Click(Sender: TObject);
begin
if not FScroll then
begin
Edit1.CanFocus := True;
Edit1.SetFocus;
end;
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
Edit1.CanFocus := False;
end;
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Single);
begin
FScroll := False;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Edit1.CanFocus := False;
end;
procedure TForm1.ScrollBox1ViewportPositionChange(Sender: TObject;
const OldViewportPosition, NewViewportPosition: TPointF;
const ContentSizeChanged: Boolean);
begin
FScroll := True;
end;
- 이상 -
-
지병철
2021.07.16 10:08
모든 TEdit Components의 이벤트를 개별로 만들어의 코딩을 하는 것 보다. OnOuseDown, OnExit, OnClick 이벤트 함수를 하나씩만 만들어서 모든 TEdit Compents에서 공유해서 쓰면 스코드가 간단해 질 것 같습니다.
제가 해보니, Scrollbox 안에 Edit 를 올려 두고 스크롤 시에 Edit 에 포커스가 들어가지 않습니다.
소스파일 올려 주시면 확인이 쉬울 것 같습니다.