TTreeView customSort 实现 自定义排序

来源:互联网 发布:随机过程教材 知乎 编辑:程序博客网 时间:2024/06/10 01:31
//---------------------------------------------------------------------------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值入回调函数第三个参数    */}

0 0
原创粉丝点击