안녕하세요. 짱굽니다.
음...역시 델파이의 TTreeView와 TListView는 좀원시적인 부분이 없지 않은거
같군요. 하지만 도움말에 아주 친절하게(?) 나와 있군요. 완벽하게 작동은 하지만
어딘가 좀 어색한 부분이 있습니다. 그래도 작동은 하니까 참고 해서 도움말과
같이 조금 살펴 보다 보면 쉽게 알수 있을 지도 모르겠군요.
아래의 소스를 보시고 작동이 안되면 다시 질문 하시길....
implementation
{$R *.DFM}
var
SortMode : Boolean;
function CustomSortProc(Item1, Item2: TListItem;
ParamSort: integer): integer; stdcall;
begin
if ParamSort = 0 then
Result := -lstrcmp(PChar(TListItem(Item1).Caption),
PChar(TListItem(Item2).Caption))
else
Result := lstrcmp(PChar(TListItem(Item1).Caption),
PChar(TListItem(Item2).Caption));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SortMode := True;
end;
procedure TForm1.ListView1ColumnClick(Sender: TObject;
Column: TListColumn);
begin
if SortMode then
ListView1.CustomSort(@CustomSortProc, 0)
else
ListView1.CustomSort(@CustomSortProc, 1);
SortMode := not SortMode;
end;
사실 이건 편법이나 다름 없어요. 어떤 형탔?list를 보여 주는가에 따라
sort는 상당히 복잡해 질 수도 있답니다.
그럼 도움이 되시길....
좋은 코딩 하시는거 잊지 마시구요.
|