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

델파이 Q&A
Delphi Programming Q&A
[3298] [답변] KKW0731/ [델] 방향키에 대한 것, 제발....
박테리아 [ ] 1346 읽음    1998-06-16 13:26
안녕 하세요?

BacTeria 박종민입니다.

결론부터 말씀 드리면... (최선의 답은 아닙니다. 제가 워낙 단순무식 그 자체라...)

  SelectNext(Sender as tWinControl, True, True);

위의 Sender에 강제로 값을 대입시키는 겁니다.

예를 들어 에디트 박스가 아래와 같이 있다고 가정하면,

┌───┐  ┌───┐  ┌───┐
│  1   │  │  2   │  │  3   │
└───┘  └───┘  └───┘

┌───┐  ┌───┐  ┌───┐
│  4   │  │  5   │  │  6   │
└───┘  └───┘  └───┘

┌───┐  ┌───┐  ┌───┐
│  7   │  │  8   │  │  9   │
└───┘  └───┘  └───┘

5번의 에디트 박스에서 키 UP 이벤트가 발생되어 2번으로 옮기려면

아래와 같이 하면 되겠죠. (Edit5의 키DOWN 에벤트에서...)

if VK_UP then
begin
  Sender := Edit1;  // 왜 Edit1을 넣는지는 아시겠죠?
  SelectNext(Sender as tWinControl, True, True);
end;

이런 식으로 일일이 다 지정 해주는 겁니다. (VK_DOWN, VK_LEFT, VK_RIGHT 모두)

아니면 이 방법도 괜찮겠죠? (5에서요)

if VK_UP    then Edit2.SetFocus;
if VK_DOWN  then Edit8.SetFocus;
if VK_LEFT  then Edit4.SetFocus;
if VK_RIGHT then Edit6.SetFocus;

그리구요 이건 노파심(?)에서 하는 소린데요.

VK_LEFT와 VK_RIGHT는 처리를 안해 주시는게 좋을듯 싶네요.

왜냐면... 문자 수정시 애를 먹을테니 말이죠. ^.^

이상 청주에서 무지하게 무식한 종미니 였습니다.

즐통~


P.S 참! 핸들 가지고 처리를 하는 이 방법도 있습니다.
    SendMessage(Handle, WM_NEXTDLGCTL, 0, 0);



+ -

관련 글 리스트
3298 [답변] KKW0731/ [델] 방향키에 대한 것, 제발.... 박테리아 1346 1998/06/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.