2013-02-24 1 views
4

Delphi 2010 및 TListView를 사용하여 이름 및 기타 데이터를 나열합니다. 처음 두 열은 성 & 이름TListView 열 정렬 (처음 두 열 정렬)

캡션이 두 열로 = 성
하위 항목 [0] 이름이

어떻게 정렬 할 = ListView에인가? 목록보기가 정렬되는 열 일 뿐이며 항목을 추가, 편집, 삭제할 때 항상 정렬을 유지하려고합니다.

어떻게해야합니까?

+5

가상 모드를 사용합니다. GUI 컨트롤을 데이터 구조로 만들지 마십시오. –

답변

7

SortType을 'stBoth'로 설정하고 OnCompare 이벤트 처리기를 구현하십시오. 예 :

procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; 
    Data: Integer; var Compare: Integer); 
var 
    S1, S2: string; 
begin 
    S1 := Item1.Caption; 
    if Item1.SubItems.Count > 0 then 
    S1 := S1 + Item1.SubItems[0]; 
    S2 := Item2.Caption; 
    if Item2.SubItems.Count > 0 then 
    S2 := S2 + Item2.SubItems[0]; 

    Compare := CompareText(S1, S2); 
end; 
+2

내가 뭘 찾고 있었는지! 고맙습니다! – JakeSays