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
[53658] Re:Re:ListView에서 키입력 질문입니다.
skjoon [skjoon] 1397 읽음    2008-06-13 14:01
아~!~ 답변 감사드립니다.

KeyPress이벤트는 생각도 안하고 있었네요... -,.-;;
KeyDown에서 Key = NULL로 해보고는 안된다고 .....

KeyDown/Up 하고 KeyPress하고 다른 점을 확인해봐야겠습니다.

말씀해주신 방법으로 해결했습니다.

감사드립니다. ^^

장성호 님이 쓰신 글 :
: 키보드 입력때  입력 Key에 맞는 Item을 자동으로 찾는것을 막는 근본적인(정상적인)방법은 잘모르겠구요
:
: [자동선택 Disable꼼수]
: 일단 KeyPress에서 Key값을 0로 해주면 Item을 자동을 찾아 선택하지 않습니다.
:
: 그런데 님께서 원하시는것은 Key입력이 오면 Caption을 수정하려고 하는것이므로
: Key입력이 들어올때 Item을 수정모드로 변환해주면 됩니다.
:
: [키입력에 아이템 캡션 수정모드로 변환]
:
: void __fastcall TForm1::ListView1KeyPress(TObject *Sender, char &Key)
: {
:         ListView1->Selected->EditCaption();
: }
: 

:
:
: 그런데 위와같이 하면 수정중에 Key입력에도 계속 KeyPress이벤트가 뜨므로 수정중일때는
: 호출되면 안될것입니다.
: 수정중인지 아닌지 판별 방법은?
: ListView의 OnEditing 과 OnEdited 이벤트를 이용하시면 됩니다.
:
:
: bool bOnEditing=false;
: void __fastcall TForm1::ListView1Edited(TObject *Sender, TListItem *Item,
:       AnsiString &S)
: {
:     bOnEditing=false;
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::ListView1Editing(TObject *Sender, TListItem *Item,
:       bool &AllowEdit)
: {
:     bOnEditing=true;
: }
: //---------------------------------------------------------------------------
: 
: void __fastcall TForm1::ListView1KeyPress(TObject *Sender, char &Key)
: {
:         if ( ! bOnEditing && ListView1->Selected )  //아이템이 수정중이지 않으면..
:                   ListView1->Selected->EditCaption();   
: }
: 

:
: 그럼...
:
:
: skjoon 님이 쓰신 글 :
: : 리포트 타입으로 해서 리스트뷰를 사용하려고 합니다.
: :
: : 리스트뷰에 데이터가 있고
: : 키보드 입력을 받아서 선택된 아이템의 내용을 수정하려고 하는데요.
: :
: : 문제는 숫자 키를 입력하게 되면.. 리스트뷰의 Item Caption의 내용이 숫자라서.. 입력된 숫자와 동일한 캡션값을 가진 아이템으로 Select가 바뀐다는 것입니다.
: :
: : 의도는 키보드로 숫자를 입력하면 선택된 아이템의 해당 컬럼 위치에 에디트박스가 활성화되고 그 에디트박스의 텍스트에 입력된 숫자가 들어가고, 마우스 등으로 다른 아이템을 선택하면 에디트박스를 없애려고 합니다.
: :
: : 그런데.. 숫자 키 입력을 하면 순식간에 에디트박스 활성화 -> 다른 아이템 선택 -> 에디트박스 사라짐 -> 입력된 키 값에 해당하는 캡션을 가진 아이템이 셀렉트 되어있음..
: :
: : 이렇게 되네요.. 설명이 제대로인지... ^^;;;;
: :
: : 암튼 질문의 요지는 리스트뷰에서 키 입력에 따라 지 스스로 아이템을 선택해버리는 기능을 막고 싶다는 것입니다.
: :
: : 쉽게 KeyDown 이벤트에서 Key를 NULL 로 만들어봤는데 안되네요.. ^^;;
: :
: : 그럼 부탁 드리겠습니다.....

+ -

관련 글 리스트
53651 ListView에서 키입력 질문입니다. skjoon 1481 2008/06/12
53655     Re:ListView에서 키입력 질문입니다. 장성호 1668 2008/06/13
53658         Re:Re:ListView에서 키입력 질문입니다. skjoon 1397 2008/06/13
53654     Re:ListView에서 키입력 질문입니다. skjoon 1686 2008/06/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.