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
[52051] Re:[답변] 리스트뷰 중앙(세로)에 찾은 아이템(칼럼)이 오게 하기
오전&오후 [kkhhyy11] 1455 읽음    2008-01-24 17:33
우와 답변 정말 감사합니다.
좋은하루되세요 정말 감사합니다 ^^

정성훈.해미 님이 쓰신 글 :
: 안녕하세요.
: 정성훈.해미입니다.
:
: 자동으로 리스트뷰으 세로중앙에 찾은 아이템(칼럼)이 오게 한 소스입니다.
: 검색 방법도 조금 변경했으니 참고하세요.
:
:    //리스트뷰의 맨 처음 아이템을 가져온다
:    TListItem *Item = ListView1->Items->Item[0];
:
:    //아이템이 있으면 반복
:    while(Item) 
:    {
:       //리포트 형태로 보이는 아이템의 2번째 칼럼(SubItems->String[0])의 내용이 같은지 검사
:       if(Item->SubItems->Strings[0] == Edit1->Text.Trim())
:       {
:           //리스트뷰의 선택 아이템으로 설정한다
:           ListView1->Selected = Item;  
:           //해당 아이템이 리스트뷰 중앙에 오게 스크롤한다
:           ListView1->Scroll(0, Item->GetPosition().y-ListView1->Height/2);
:           //리스트뷰에 포커스
:           ListView1->SetFocus();   
:           //반복문 종료
:           break;   
:       }
:       //리스트뷰에서 다음 아이템을 찾는다.
:       Item = ListView1->GetNextItem(Item, sdAll, TItemStates()<<isNone);
:    }
:
:
: //----------------------------------------
: //  ┏┓
: //  ┣┻┓┏   ┃┃     작은 생각이 세상을 바꾼다
: //  ┃♡┃┣   ┣┫┏┓
: //  ┗━┛┗   ┃┃┣┫┏┓┏┓      - 정성훈.해미
: //  ━━━━━━━━━┣┛┣┛┗┫━━━━━━
: //  Web Site: http://www.hemistory.net
: //  e-mail: sage5nor@chol.com
: //----------------------------------------
:
: 오전&오후 님이 쓰신 글 :
: : 답변감사합니다.
: : 선택되는거는 되는데 선택된 항목이 화면에 보여줘야 되는데
: :  ListView1->SetFocus();    //리스트뷰에 포커스
: : 자동스크롤은 안되나 보네요 선택된 항목으로 자동스크롤되게 하려면 어덯게 해야되나요 ㅜㅜ;;;
: : 여러가지로 생각해 보는데 생각이 잘안되네요 답변부탁드립니다.
: :
: : 정성훈.해미 님이 쓰신 글 :
: : : 안녕하세요.
: : : 정성훈.해미입니다.
: : :
: : : 리스트뷰를 리포트스타일로 사용하신가 보군요.
: : : 아이템의 Selected를 true로 하고, 리스트뷰의 SetFocus()함수만 부르면 선택된 상태로 포커스가 갑니다.
: : :
: : : [예]
: : :     for(int i=0 ; i<ListView1->Items->Count; i++)    //리스트뷰의 아이템 개수만큼 반복
: : :     {
: : :          //리포트 형태로 보이는 아이템의 2번째 칼럼(SubItems->String[0])의 내용중에 같은 것이 있는지 검색
: : :         if(ListView1->Items->Item[i]->SubItems->Strings[0] == Edit10->Text.Trim())
: : :         {
: : :             ListView1->Items->Item[i]->Selected = true;    //해당 아이템을 선택
: : :             ListView1->SetFocus();    //리스트뷰에 포커스
: : :             break;
: : :         }
: : :     }
: : : //----------------------------------------
: : : //  ┏┓
: : : //  ┣┻┓┏   ┃┃     작은 생각이 세상을 바꾼다
: : : //  ┃♡┃┣   ┣┫┏┓
: : : //  ┗━┛┗   ┃┃┣┫┏┓┏┓      - 정성훈.해미
: : : //  ━━━━━━━━━┣┛┣┛┗┫━━━━━━
: : : //  Web Site: http://www.hemistory.net
: : : //  e-mail: sage5nor@chol.com
: : : //----------------------------------------
: : :
: : : 오전&오후 님이 쓰신 글 :
: : : : ListView에서 특정값을 검색해서
: : : : 검색한 데이타가 있을경우 해당데이타가 선택되고 포커스가 거기로 이동하게 할려고 하는데
: : : : 어떻게 해야되나요?
: : : :
: : : : 밑에처럼 해봤는데 안되네요 방법을 아시는분 답변좀 부탁드립니다.
: : : :
: : : : for(int i=0 ; i < ListView1->Items->Count - 1 ; i++){
: : : :                 if(ListView1->Items->Item[i]->SubItems[0].Strings[0] == Edit10->Text.Trim()){
: : : :                         ListView1->Items->Item[i]->Selected = true;
: : : :                         ListView1->Items->Item[i]->Focused = true;
: : : :                         ListView1->Update();
: : : :                         break;
: : : :                 }
: : : :         }

+ -

관련 글 리스트
52030 ListView에서 검색후 오전&오후 1172 2008/01/23
52032     Re:ListView에서 검색후 정성훈.해미 1839 2008/01/23
52045         Re:Re:ListView에서 검색후 오전&오후 1676 2008/01/24
52047             [답변] 리스트뷰 중앙(세로)에 찾은 아이템(칼럼)이 오게 하기 정성훈.해미 1704 2008/01/24
52051                 Re:[답변] 리스트뷰 중앙(세로)에 찾은 아이템(칼럼)이 오게 하기 오전&오후 1455 2008/01/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.