Wieso hast Du überhaupt 2 Listen? Weil eigentlich könntest Du den String gemeinsam mit dem Integer in der Stringlist speichern. Siehe z.B. hier:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}
uses
Classes, SysUtils;
var
IntegerStringListe : TStringList;
i : Integer;
begin
IntegerStringListe := TStringList.Create;
IntegerStringListe.AddObject('String 3', TObject(1));
IntegerStringListe.AddObject('String 2', TObject(2));
IntegerStringListe.AddObject('String 1', TObject(3));
writeln('Vor dem sortieren:');
for i := 0 to IntegerStringListe.Count - 1 do
writeln('string = ' + IntegerStringListe[i] + ' - integer = ', Integer(IntegerStringListe.Objects[i]));
IntegerStringListe.Sorted := true;
IntegerStringListe.Sort;
writeln;
writeln('Nach dem sortieren:');
for i := 0 to IntegerStringListe.Count - 1 do
writeln('string = ' + IntegerStringListe[i] + ' - integer = ', Integer(IntegerStringListe.Objects[i]));
readln;
IntegerStringListe.Free;
end.