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
[22372] Re: ListView의 Sort.. 답변감사드립니다. 내용무..
백상열 [] 1022 읽음    2002-10-31 16:47
감사드립니다 꾸벅~
알려주신대로 코딩하니깐 잘됩니다.
많은 도움이 되었습니다.


민인학 님이 쓰신 글 :
: 애초에 뿌려줄때에 정렬하는것은 저두 잘은 모르구요..
: 컬럼을 클릭했을때 정렬하는 소스를 싥습니다.
:
: 우선 ListView의 event속성중에 OnColumnClick이벤트에 아래의 소스와 같이 작성해 주세요.
: 아래는 정렬하는 알고리즘에 몇번째 컬럼을 기준으로 정렬할지를 알려주는 겁니다.
:
: int SortByColumn = -1;
: int SortOrder = 1;
: void __fastcall TIproveImportDesign::ClockDomainListViewColumnClick(TObject *Sender, TListColumn *Column)
: {
:         if(SortByColumn == Column->Index) {
:                 SortOrder *= -1;
:         } else {
:                 SortOrder = 1;
:         }
:
:         ClockDomainListView->CustomSort(NULL, Column->Index);
:         SortByColumn = Column->Index;
: }
:
: 다음은 OnCompare이벤트에 아래의 소스와 같이 작성해 주세요.
: 아래는 정렬 알고리즘을 기술하는 부분입니다.
: void __fastcall TIproveImportDesign::ClockDomainListViewCompare(
:         TObject *Sender, TListItem *Item1, TListItem *Item2, int Data, int &Compare)
: {
:         if(Data == 0) {
:                 if(Item1->Caption < Item2->Caption) {
:                         Compare = -1;
:                 } else if(Item1->Caption > Item2->Caption) {
:                         Compare = 1;
:                 } else {
:                         Compare = 0;
:                 }
:         } else {
:                 if(Item1->SubItems->Strings[Data-1] < Item2->SubItems->Strings[Data-1]) {
:                         Compare = -1;
:                 } else if(Item1->SubItems->Strings[Data-1] > Item2->SubItems->Strings[Data-1]) {
:                         Compare = 1;
:                 } else {
:                         Compare = 0;
:                 }
:         }
:         Compare *= SortOrder;
: }
:
: 그럼.. 이정도면 컬럼을 클릭했을때 정렬은 하실수 있습니다.
: 그런데 저두 정말 궁금한데.. 데이타를 출력하면서 정렬은 못하는 겁니까?
: 아시는분은 답변좀 부탁드립니다.
:
:
: 백상열 님이 쓰신 글 :
: : 출력된 ListView1에서 내용으로 Sort를 시키고싶습니다. 그래서,
: :
: : TListItem *NewItem;
: : 이렇게하구요,
: :
: : NewItem->Caption=tel; // 전화
: : NewItem->SubItems->Add(name); // 이름
: : item은 각각 이렇게 넣었는데,
: :
: : 전화가 아니라
: : 이름(즉, ListView1->Items->Item[i]->SubItems->String[0])으로
: : Sort하려고하는데, 가능한가요 ?
: :
: : Help를 보니깐
: :
: : ListView1->SortType=stData;
: : ListView1->AlphaSort();
: : 이렇게 하면된다건지,, 답답해서 이렇게 직접해봐도 잘 안되는데..
: : 제가 사용을 잘못한건지, 아니면 ListView에서는 Sort를 지원하지않은겐지
: : 궁금합니다.
: :
: : 혹시, 구체적으로 아시는분있으시면 답변주시면 고맙겠습니다. 꾸벅~
: : ViewStyle에서 vsReport하고, 각 칼럼을 클릭하면 Sort되어도 좋습니다.

+ -

관련 글 리스트
22350 ListView에서도 Sort가 가능한지 궁금합니다. 백상열 837 2002/10/30
22357     Re:ListView에서도 Sort가 가능한지 궁금합니다. 민인학 2149 2002/10/30
22372         Re: ListView의 Sort.. 답변감사드립니다. 내용무.. 백상열 1022 2002/10/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.