|
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틀째 이것만 하는데두 답이 안나오네요...
: 고수님들의 답변 부탁드립니다~
|