c++builder TTreeView customSortカスタムソート

5110 ワード

//---------------------------------------------------------------------------
int __stdcall mySort(long n1,long n2, long Reverse)
{
TTreeNode *Node1=(TTreeNode*)n1;
TTreeNode *Node2=(TTreeNode*)n2;

//Reverse
// Reverse=1
// Reverse=0
if(Reverse==1)
{
if(Node1->Level==1)//
{
if(StrToInt(Node1->Text)>StrToInt(Node2->Text))
{
return -1;
}
else
if(StrToInt(Node1->Text)<StrToInt(Node2->Text))
return 1;
else
return 0;
}
}
else
if(Reverse==0)
{
if(Node1->Level==1)//
{
if(StrToInt(Node1->Text)>StrToInt(Node2->Text))
{
return -1;
}
else
if(StrToInt(Node1->Text)<StrToInt(Node2->Text))
return 1;
else
return 0;
}
else//
{
if(StrToInt(Node1->Text)<StrToInt(Node2->Text))
{
return -1;
}
else
if(StrToInt(Node1->Text)>StrToInt(Node2->Text))
return 1;
else
return 0;
}
}

return 0; //
}
void __fastcall TForm1::btn_SortClick(TObject *Sender)
{
TreeView1->CustomSort (mySort,0); //
// TreeView1->CustomSort (mySort,1); //
/*
CustomSort(PFNTVCOMPARE SortProc, int Data; bool ARecurse = true)
Data
*/
}

 
参照http://hi.baidu.com/pwf%D0%A1%CE%C0/blog/item/ebcda427c6f49d0a908f9d69.html