Q&A

  • 리스트뷰에서 컬럼클릭시 정렬을 하고 싶은데..
안녕하세요?

제게 문제가 있어가지고 도움을 청합니다.

리스트뷰에서 컬럼을 클릭했을 때 해당 컬럼으로 정렬하려고 하는데요.

델파이 헬프에 다음과 같은 코드가 있길래 사용했습니다.

일단 정렬은 되는데, 문제가 생겼어요.

MDI CHILD FORM마다 리스트뷰가 있는데요. childform1에서 정렬을 하고나서 childform2를 열었다가( 이 때 childform1은 close ) 다시 childform1을 열면( 이 때 childform2는 close ) outofbound가 생기더라구요.

흑흑.. 도와주세요.



procedure Tform1.ListViewColumnClick(Sender: TObject;

Column: TListColumn);

begin

globalInteger_ColumnToSort := Column.Index;

(Sender as TCustomListView).AlphaSort;

end;



procedure Tform1.ListViewCompare(Sender: TObject; Item1,

Item2: TListItem; Data: Integer; var Compare: Integer);

var

i : Integer;

begin

if GlobalInteger_ColumnToSort = 0 then

Compare := CompareText(Item1.Caption,Item2.Caption)

else begin

i := GlobalInteger_ColumnToSort - 1;

Compare := CompareText(Item1.SubItems[i],Item2.SubItems[i]);

end;

end;

0  COMMENTS