C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[1556] Re:[질문]팁(31)중에서 폼을 패널에..
박지훈.임프 [cbuilder] 3556 읽음    1999-07-10 00:00
: 또 왔읍니다..
: 밑에 있는것은 아직 답이 안올라 왔군요..
:
: 올려주신 팁을 공부 하던 중에 폼을 패널에넣기
: 라는 팀을 해보았는데...
: 문제가 발생했읍니다..왜그런지...?
:
: 패널에 넣는것까지는 잘되었는데 그폼에 에디트
: 콘트롤이 있는경우 입력이 되질 않읍니다.
: (단, 폼스타일이 none인경우를 제외하고 - 이경우는 됨)
:
: 물론 메모 콘트롤도 입력 포코스를 갖지 못합니다.
: 방법이 없을까요?
:
:


임펠리테리입니다.
키입력 메시지를 처리하는 컨트롤(에디트나 메모등)을 테스트해 볼 일이 없어서
몰랐었는데, 말씀하신 대로의 문제가 있군요. vcl의 소스를 뒤져봐야 확실하겠지만,
아무래도 TCustomEdit 정도의 클래스 수준에서 vcl 버그인 듯 합니다.
포커스를 주는 과정에서, 현재의 최상위 윈도우 핸들 내에서만 해당 컨트롤을 찾고
있는 것으로 보입니다.
(vcl에서는, 복잡한 상속 관계로 인해 실제로 이 정도의 버그는 흔히 존재합니다.)

소스를 뒤져서 고쳐볼 수도 있겠지만.. 벼룩 잡는다고 초가삼간 태우는 격이고,
그래서 약간 편법적으로 방법을 제시하겠습니다.
직접 해보시면 아시겠지만, 에디트나 메모를 올려놓은 후 실행하여 클릭하면,
OnClick 이벤트는 동작하는데 그때 포커스가 가지 않습니다.
그래서, OnCLick 이벤트에서 간단히.. 다음과 같이,
void __fastcall TForm2::Edit1Click(TObject *Sender)
{
    Edit1->SetFocus();
}
강제로 포커스를 주면 됩니다.
탭키로 입력포커스를 옮기는 데 있어서는 문제가 없더군요.
그럼 참고하시길...

+ -

관련 글 리스트
1555 [질문]팁(31)중에서 폼을 패널에.. 방랑자 3300 1999/07/10
1556     Re:[질문]팁(31)중에서 폼을 패널에.. 박지훈.임프 3556 1999/07/10
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.