|
어차피 ListView에서는 시간도 문자열로 변환되어 들어가게 됩니다. 즉, 영어단어 순으로 정렬하는 것과 동일한 방법으로 하시면 되겠죠.
참고로, 데이타의 양이 많을 땐 ListView보다는 VirtualTreeView로 처리하시는 것이 훨씬 유리할겁니다.
일월영측 님이 쓰신 글 :
: ListView에서 Caption을 사용하지 않고 가운데 정렬로 네개의 서브 아이템을 만들었습니다.
: 첫번째 Column에는 현재 시간이 지속적으로 밀리초 단위 까지 입력이 됩니다.
: 두번째 Column에는 영어단어가 입력이 되어서 그 영어 단어에 대한 정렬을 아래와 같이 실행을 하였습니다.
:
: 아래와 같이 실행을 하게 되면 영어의 내림차순과 오름차순에 대해 정렬을 할 수 있는데 처음
: ListView에 올려져 있는 정보를 원상복귀 시키진 못합니다. 그래서 생각을 한것이 시간에 대한 정렬을 생각해봤는데
: 어떻게 시간에 대해 정렬을 시켜야할지 몰라서 이렇게 질문을 올립니다. 영어에 대한 내림차순과 오름차순 정렬을 다시 맨 처음 상태로 원상 복귀 시키는 방법이 없는걸까요??
:
: 제발 좀 도와주세요..ㅜ
:
:
: void __fastcall TfrmMain::listColumnClick(TObject *Sender,
: TListColumn *Column)
: {
: if(m_SortByColumn == Column->Index)
: {
: m_SortOrder *= -1;
: }
: else
: {
: m_SortOrder = 1;
: }
: list->CustomSort(NULL, Column->Index);
: m_SortByColumn = Column->Index;
: }
: void __fastcall TfrmMain::listCompare(TObject *Sender, TListItem *Item1,
: TListItem *Item2, int Data, int &Compare)
: {
: 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 *= m_SortOrder;
: }
|