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
[58913] [자답]Re:listview에서 Sorting 할때요~
미연아사랑해 [jcs7342] 1250 읽음    2009-10-28 17:23
Compare 값을 바꿔주니까 되네요...
이렇게 쉬운것을 저는 왜 그랬는지........
오름차순은
ListView1ColumnClick;함수에서
ListView1->CustomSort(NULL, Column->Index);만 써주구요..
ListView1Compare함수에서
if(Item1->Caption < Item2->Caption) Compare = -1;
else if(Item1->Caption > Item2->Caption) Compare = 1; 이렇게 해주면 되네요..
내림차순은
ListView1ColumnClick;함수에서
써준거 그대로 다 써주구요..
ListView1Compare함수에서
if(Item1->Caption < Item2->Caption) Compare = 1;
else if(Item1->Caption > Item2->Caption) Compare = -1;
이렇게 하니까 해결됐네요;;
다들 즐코하세요~

미연아사랑해 님이 쓰신 글 :
: void __fastcall TForm1::ListView1Compare(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;
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::ListView1ColumnClick(TObject *Sender,
:       TListColumn *Column)
: {
:   if(SortByColumn == Column->Index) SortOrder *= -1;
:   else SortOrder = 1;
:
:   ListView1->CustomSort(NULL, Column->Index);
:   SortByColumn = Column->Index;
: }
:
: 이렇게 하면 컬럼 헤더 누르면 Sorting은 되는데요
: 제가 하고 싶은 것은 버튼을 누르면 콤보박스를 이용해서 오름차순 내림차순 정렬시키고 싶은데요..
:
: void __fastcall TForm1::Button3Click(TObject *Sender)
: {
:  switch (ComboBox1->ItemIndex){
:     case 0 : //오래된 것부터 정렬
:      ListView1ColumnClick(ListView1, ListView1->Column[0]);
:     break;
:     case 1 : // 최신 것부터 정렬
:      ListView1ColumnClick(ListView1, ListView1->Column[0]);
:     break;
:  }
: }
:
: 이렇게 하면 그냥  순차적으로 한번씩 바뀌기만 하잖아요..
: 따로 구분되어 지게 할 수는 없을까요??
: 2틀째 이것만 하는데두 답이 안나오네요...
: 고수님들의 답변 부탁드립니다~

+ -

관련 글 리스트
58907 listview에서 Sorting 할때요~ 미연아사랑해 1098 2009/10/28
58913     [자답]Re:listview에서 Sorting 할때요~ 미연아사랑해 1250 2009/10/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.