|
OnCompare 이벤트 핸들러의 앞에서 12보다 작으면 리턴시키셨는데...
리턴시키기 전에 Compare 값을 0으로 세팅해주면 됩니다.
그럼...
블루미르 님이 쓰신 글 :
: 감사합니다... 꾸벅
:
: 질문 올리기 전에 그 예제도 보긴 봤었는데.... 에휴~
:
: 님의 말씀처럼 아이템의 인덱스를 체크했는데도 전체가 sort되버리네요...
:
: 소스 좀 봐주시며 감사하겠습니다....
:
: void __fastcall THistogramData::LstViewColumnClick(TObject *Sender, TListColumn *Column)
: {
: int Term = LstView->Items->Count;
:
: if(SortByColumn == Column->Index)
: SortOrder *= -1;
: else
: SortOrder = 1;
:
: SortByColumn = Column->Index;
:
: if(SortByColumn == 0) return;
:
: LstView->CustomSort(NULL, Column->Index);
:
: for(int i=12; i<Term; i++)
: LstView->Items->Item[i]->Caption = i-12;
: }
: //---------------------------------------------------------------------------
: void __fastcall THistogramData::LstViewCompare(TObject *Sender,
: TListItem *Item1, TListItem *Item2, int Data, int &Compare)
: {
: if(Item1->Index<12) || Item2->Index<12) // 이 넘이 체크하는 부분...
: return;
:
: if(Data == 0)
: {
: int Th1=0, Th2=0;
:
: Th1 = StrToInt(Item1->Caption);
: Th2 = StrToInt(Item2->Caption);
:
: if(Th1<Th2) Compare = -1;
: else if(Th1>Th2) Compare = 1;
: else Compare = 0;
: }
: else
: if(SortByColumn == 0)
: return;
: else
: {
: float Th1=0.0, Th2=0.0;
:
: Th1 = StrToFloat(Item1->SubItems->Strings[Data-1]);
: Th2 = StrToFloat(Item2->SubItems->Strings[Data-1]);
:
: if(Th1<Th2) Compare = -1;
: else if(Th1>Th2) Compare = 1;
: else Compare = 0;
: }
:
: Compare *= SortOrder;
: }
|