|
^^ 안녕하세요 리스트 뷰에서 컬럼헤더를 클릭시 소팅시 아래와 같은 코드에서는알파벳 순 소팅만
합니다. 특정 컬럼의 값이 숫자일 때는 OnCompare에서 어떻게 수정해야 하나요
여러 고수님의 고견을 부탁 드립니다.
int SortByColumn = -1;
int SortOrder = 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;
}
//---------------------------------------------------------------------------
|