|
감사드립니다 꾸벅~
알려주신대로 코딩하니깐 잘됩니다.
많은 도움이 되었습니다.
민인학 님이 쓰신 글 :
: 애초에 뿌려줄때에 정렬하는것은 저두 잘은 모르구요..
: 컬럼을 클릭했을때 정렬하는 소스를 싥습니다.
:
: 우선 ListView의 event속성중에 OnColumnClick이벤트에 아래의 소스와 같이 작성해 주세요.
: 아래는 정렬하는 알고리즘에 몇번째 컬럼을 기준으로 정렬할지를 알려주는 겁니다.
:
: int SortByColumn = -1;
: int SortOrder = 1;
: void __fastcall TIproveImportDesign::ClockDomainListViewColumnClick(TObject *Sender, TListColumn *Column)
: {
: if(SortByColumn == Column->Index) {
: SortOrder *= -1;
: } else {
: SortOrder = 1;
: }
:
: ClockDomainListView->CustomSort(NULL, Column->Index);
: SortByColumn = Column->Index;
: }
:
: 다음은 OnCompare이벤트에 아래의 소스와 같이 작성해 주세요.
: 아래는 정렬 알고리즘을 기술하는 부분입니다.
: void __fastcall TIproveImportDesign::ClockDomainListViewCompare(
: TObject *Sender, TListItem *Item1, TListItem *Item2, int Data, int &Compare)
: {
: if(Data == 0) {
: if(Item1->Caption < Item2->Caption) {
: Compare = -1;
: } else if(Item1->Caption > Item2->Caption) {
: Compare = 1;
: } else {
: Compare = 0;
: }
: } else {
: 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 *= SortOrder;
: }
:
: 그럼.. 이정도면 컬럼을 클릭했을때 정렬은 하실수 있습니다.
: 그런데 저두 정말 궁금한데.. 데이타를 출력하면서 정렬은 못하는 겁니까?
: 아시는분은 답변좀 부탁드립니다.
:
:
: 백상열 님이 쓰신 글 :
: : 출력된 ListView1에서 내용으로 Sort를 시키고싶습니다. 그래서,
: :
: : TListItem *NewItem;
: : 이렇게하구요,
: :
: : NewItem->Caption=tel; // 전화
: : NewItem->SubItems->Add(name); // 이름
: : item은 각각 이렇게 넣었는데,
: :
: : 전화가 아니라
: : 이름(즉, ListView1->Items->Item[i]->SubItems->String[0])으로
: : Sort하려고하는데, 가능한가요 ?
: :
: : Help를 보니깐
: :
: : ListView1->SortType=stData;
: : ListView1->AlphaSort();
: : 이렇게 하면된다건지,, 답답해서 이렇게 직접해봐도 잘 안되는데..
: : 제가 사용을 잘못한건지, 아니면 ListView에서는 Sort를 지원하지않은겐지
: : 궁금합니다.
: :
: : 혹시, 구체적으로 아시는분있으시면 답변주시면 고맙겠습니다. 꾸벅~
: : ViewStyle에서 vsReport하고, 각 칼럼을 클릭하면 Sort되어도 좋습니다.
|