function ShellCompare(Item1, Item2: Pointer): Integer;
begin
Result := Smallint(
TShellFolder(Item1).ParentShellFolder.CompareIDs(
SortColumn,
TShellFolder(Item1).RelativeID,
TShellFolder(Item2).RelativeID));
end;
procedure TForm1.ShellListView1AddFolder(Sender: TObject; AFolder: TShellFolder;
var CanAdd: Boolean);
begin
if (AFolder.IsFolder = false) and (extractfileext(AFolder.DisplayName) <> '*.jpg')
then begin
CanAdd := False;
end;
end;
排序事件
begin
SortColumn := 0;
ShellListView1.FolderList.Sort(ShellCompare);
ShellListView1.Invalidate;
end;