|
void __fastcall TfrmMySystem::vstCompareNodes(TBaseVirtualTree *Sender,
PVirtualNode Node1, PVirtualNode Node2, TColumnIndex Column, int &Result)
{
PLinkData Data1 = (PLinkData)vst->GetNodeData(Node1);
PLinkData Data2 = (PLinkData)vst->GetNodeData(Node2);
PLinkData DataDevice = (PLinkData)vst->GetNodeData(Node1->Parent);
if(DataDevice)
{
if(DataDevice->Pin == Data1->Pin)
{
int iAddr1 = Data1->UnitName.SubString(Data1->DevXml->PreDef.Length(), Data1->UnitName.Length()).ToIntDef(-1);
int iAddr2 = Data2->UnitName.SubString(Data1->DevXml->PreDef.Length(), Data2->UnitName.Length()).ToIntDef(100000);
if(iAddr1 > iAddr2) Result = 1;
else Result = -1;
}
}
}
//-------------------------------------------------------------------------------
//① 설 명 :
//② 인 수 :
//③ 리 턴 :
//-------------------------------------------------------------------------------
void __fastcall TfrmDAQList::vstHeaderClick(TVTHeader *Sender,
TColumnIndex Column, TMouseButton Button, TShiftState Shift, int X, int Y)
{
vst->SortTree(Column, sdAscending);
}
제가 쓰고 있는것을 예를 들어서 정렬하는걸 보여주네요.
Result값에 따라서 정렬합니다.
Item갯수는 지금 갑자기 생각나지 않는데 그냥 무식하게하자면
int cnt = 0;
PVirtualNode pNode = vst->GetFirst();
while(pNode)
{
cnt++;
pNode = pNode->NextSibling;
}
하면 갯수가 나올거 같습니다...
용맨소녀 님이 쓰신 글 :
: 1. 코드상에서 2번 칼럼의 데이타를 기준으로 전체 행을 Sort하고 싶습니다.
:
: 출력은 리스트뷰 형태입니다..
:
: Sort한 다음 데이타를 파일로 세이브하는 작업이거든요..
:
: 2. 행 수를 알고 싶습니다. 일반적으로 Items->Count으로 되는데, 이건 다른 것 같네요.. 우어..
:
: VirtualTreeview는 오늘 처음 설치해서 셀 편집까지는 했는데, 막히는게 많네요..
|