Q&A

  • 최용일님.. 가상리스트뷰에서 컬럼을 클릭할때 정렬을 어떻게 하나요..? 꼭 좀..
안녕하세요

가상리스트뷰에서 컬럼을 클릭하면 정렬을 하려고 합니다.

그래서 각 스트링 리스트를 만들고 저장해서 리스트뷰에 뿌려주었는데,

한 컬럼을 클릭했을때 그 컬럼의 스트링 리스트는 정렬할 수는 있지만, 병렬로

연관된 스트링리스트들까지 정렬이 안됩니다.

사이트를 모두검색해보았지만,

어떻게 해야할지 모르겠습니다.

가상리스트뷰에서 컬럼을 클릭할때 정렬할 수 있는 방법을

알려주십시요. 감사합니다.
1  COMMENTS
  • Profile
    최용일 2003.05.23 00:44
    안녕하세요. 최용일입니다.

    가상리스트뷰의 데이터 구조를 TStringList를 쓰셔서 컬럼에 의존적으로 만드셨나보네요... 에휴~ 쩝~

    이 경우는 별다른 방법이 없네요... 스트링리스트의 정렬관련 함수도 쓸 수 없을테구... 에휴~ 직접 정렬하는 함수를 만들어서 하시는 수밖에는... 컬럼의 스트링리스트를 정렬할 때 두개의 항목이 바뀌잖아요. 그때 병렬로 연결된 스트링리스트의 같은 인덱스를 가지는 두개의 항목들도 각각 바꾸어주시면 되겠습니다...

    정렬하는 방법은 책이나 웹에 찾아보셔두 많이 있겠지만 델파이 소스에도 있습니다.

    Classes유닛에 찾아보시면 TStringList, TList등에 퀵소트하는 루틴이 있습니다. 이걸 보시고 약간만 응용하시면 정렬은 해결될거 같네요...

    이런 말씀드리긴 뭐하지만...

    자료구조를 다시 만드시라고 말씀드리고 싶네요... 컬럼에 의존적인게 아니라 반대로 로(Row, 아이템, 레코드, 항목...)에 의존적인 구조로 만드세요... 델파이 컴포넌트만 봐도 대부분 이런 구조로 되어 있습니다. TListBox, TListView, TTreeView, TMemo, TRichEdit, ...

    제가 추천하고 싶은 자료구조는 TList입니다. 이걸 사용하시면 정렬도 쉽습니다. 두개의 항목을 비교하는 루틴만 만들어 주시면 되니까요...

    ^^ 항상 즐코하세요...