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
[43201] Re:FormKeyPress 관련 질문입니다.
정재훈 [jaehuns] 1690 읽음    2006-01-05 13:46
Key이벤트는
KeyPress 와 KeyDown, KeyUp으로 나누어 생각할 수 있습니다. 차이점은 함수인자에 TShiftState가 더 있다는 거지요. 또한 일반적으로 Virtual Key입력을 받느냐 못받느냐의 차이도 있습니다.*^^*
예를 들어 KeyPress는 ESC키의 키코드를 알지 못합니다. 즉, 함수내에서  (VK_xxxx  VirtualKey라는 의미)
if(Key == VK_ESCAPE) { do-something } 을 제대로 수행하지 못한다는 말이지요..
TShiftState인자도 없지요.. 이 녀석은 키조합을 검사해 볼 수 있습니다.
이런 식으로 사용합니다.
void __fastcall TView::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
{
     if(Shift.Contains(ssAlt) && Key==VK_F1) MainForm->About1Click(Sender);
}
키가 눌러졌을 때 Alt키 와 F1키가 함께 눌러졌다면 About1Click이라는 버튼을 눌렀을 때 수행하는
일을 수행합니다. 여기서 Sender로 받아온 녀석을 써먹을 수 있습니다..
님께서 하고 싶은 일은 버튼을 클릭했을 때니까 ButtonClick(TObject *Sender)가 있겠지요?
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    // 여기서 주어질 키 값을 챙겨야 겠지요. 그냥 KeyValue라고 한다면
    FormKeyPress(Sender, KeyValue);
}
라고 쓰시면 되겠지요..

이상 허접한 답변이었습니다..^^



산적과해적 님이 쓰신 글 :
: FormKeyPress는   void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key)
:
: 위와같이 선언되어 있잖아요. 그 함수내에는 숫자와 산술기호만을 출력하게끔 하는 코드가 들어있는
:
: 상태입니다. 헌데 이를 버튼 클릭을 통해서 호출할수 있나요?
:
: 버튼을 누르면 해당버튼의 값을 FormKeyPress(TObject *Sender, char &Key) 에 넘겨줘서
:
: 키보드로 입력하는 것과 동일한 효과를 얻게 하고 싶은데요. Key값은 넘겨줘야하는 값일것 같고요
:
: 그런데 TObject *Sender  파라미터에는 어떤값을 넣어줘야 하는건가요?
:
: 아시는분 계시면 좀 알려주세요 (__)
:
: 아참 그리고 void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,TShiftState Shift)
:
: FormKeyUp 인데요 이것역시 어떤 파라미터값이 들어가야하는지좀 알려주세요.

+ -

관련 글 리스트
43184 FormKeyPress 관련 질문입니다. 산적과해적 992 2006/01/04
43371     Re:FormKeyPress 관련 질문입니다. 두분 모두 감사드려요 (__) 산적과해적 1070 2006/01/19
43201     Re:FormKeyPress 관련 질문입니다. 정재훈 1690 2006/01/05
43190     Re:FormKeyPress 관련 질문입니다. smleelms 1130 2006/01/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.