Вам необходимо отсортировать строки с помощью алгоритма сортировки, называемого «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, а Customort работает только для TStringlist. После FindFirst et c. закончено добавить следующее:
...
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;
....