|
정말 모르겠다 님이 쓰신 글 :
: 트리뷰에서 여러개의 노드를 넣은 뒤 각 노드를 정렬해서 보이고 싶은데.. 어케 하죠..
: 트리뷰 정렬하는 부분을 모르겠어요??
: 알켜주세요
TTreeView 컴포넌트에는 AlphaSort() 메서드가 있습니다.
이 메서드는 전체 트리의 노드들을 정렬하는데 형제 노드간에만 정렬합니다.
즉, 조상노드나 방계노드와는 비교 정렬을 하지 않습니다.
정렬 방향은 디폴트로 오름차순이지만 OnCompare 이밴트에 핸들러를 만들어주면 내림차순으로 정렬할 수도 있습니다.
그리고 노드간에 정렬을 위해 비교할 때 무엇을 비교하는가를 SortType 속성에 지정할 수 있습니다.
void __fastcall TForm1::TreeView1Compare(TObject *Sender, TTreeNode *Node1,
TTreeNode *Node2, int Data, int &Compare)
{
//오름 차순
if(rdgSort->ItemIndex==0)
{
if(Node1->Text<Node2->Text) Compare=-1;
else if(Node1->Text==Node2->Text) Compare=0;
else Compare=1;
}
//내림 차순
else
{
if(Node1->Text>Node2->Text) Compare=-1;
else if(Node1->Text==Node2->Text) Compare=0;
else Compare=1;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::btnSortClick(TObject *Sender)
{
TreeView1->AlphaSort();
}
끝.
|