delphi - 在列表框中列出文件,如 Delphi 中的 Windows 资源管理器
解决方案
您需要使用称为“LogicalCompare”的排序算法对字符串进行自定义排序。成分如下,(我希望我明白如何添加代码......)。另外,这适用于delphi10.3,不知道以前的版本。
uses Winapi.ShLwApi;
function LogicalCompare(List: TStringList; Index1, Index2: integer): integer;
begin
Result := StrCmpLogicalW(PWideChar(List[Index1]), PWideChar(List[Index2]));
end;
对于您的列表框项目,您需要一些杂项,因为项目属于 TStrings 类型,而 Customsort 仅适用于 TStringlist。在 FindFirst 等完成后添加以下内容:
...
var sl: TStringlist;
....//Listbox1 items are populated
sl:=TStringlist.create;
try
sl.assign(Listbox1.items);
sl.Customsort(LogicalCompare);
Listbox1.items.assign(sl);
finally
sl.free;
end;
....
推荐阅读
- hyperledger-fabric - 向 Fabcar 网络添加对等点 - Hyperledger Fabric
- blockchain - 在 IBM 区块链 composer-rest 服务器上设置 github 身份验证
- javascript - 如何创建具有可选功能的对象?
- jenkins - 在 Gitlab 中添加 webhook
- html - 元素之间的弹性空间
- java - 如何比较三个数组值?
- grails - Grails 2.4.4 请求对象日志记录
- mysql - 如何返回 sum(field) <= value 的行
- java - 创建通用方法以使用 OpenCSV 导出数据
- javascript - 单击推送通知时如何打开应用程序的特定页面