Me parece que no va a ser tan fácil como usar Sorted porque el ordenamiento se hace como texto y no como números. Eso implica, por ejemplo, que
'10' va antes que
'2' a pesar de que 2 es menor que 10.
Se me ocurre usar un TStringList auxiliar y su método CustomSort:
Código Delphi
[-]
function CompareNumbers(List: TStringList; Index1, Index2: Integer): Integer;
var
N1, N2: Integer;
begin
if TryStrToInt(List[Index1], N1) and TryStrToInt(List[Index2], N2) then
if N1 < N2 then
Result := -1
else if N1 = N2 then
Result := 0
else
Result := 1
else
raise Exception.Create('La lista contiene valores incorrectos');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
SL: TStringList;
begin
SL := TStringList.Create;
try
SL.AddStrings(ListBox1.Items);
SL.CustomSort(CompareNumbers);
ListBox1.Items := SL;
finally
SL.Free
end;
end;
// Saludos