Nja, ganz einfach.
Du führst die StringList_MN als sortierte Liste, damit kannst du Sorted, Duplicates verwenden, welche wiederum das schnellere Find nutzen und gleichzeitig automatisch die Duplikate ignorieren.
Delphi-Quellcode:
StringList_MN.Sorted := True;
StringList_MN.Duplicates := dupIgnore;
so fügst du dann die Strings der Liste hinzu und zu jedem String kommt noch ein Index (Reihenfolge des Einfügens)
StringList_MN.AddObject(S, TObject(StringList_MN.Count));
Am Ende wird die Reihenfolge über die Indize wiederhergestellt.
Delphi-Quellcode:
StringList_MN.CustomSort(
function(List: TStringList; Index1, Index2: Integer): Integer
begin
Result := Integer(List.Objects[Index1]) - Integer(List.Objects[Index2]);
end);
oder passend für dein D7
Delphi-Quellcode:
function MySort(List: TStringList; Index1, Index2: Integer): Integer
begin
Result := Integer(List.Objects[Index1]) - Integer(List.Objects[Index2]);
end);
StringList_MN.CustomSort(MySort);
Falls die Reihenfolge egal ist, dann einfach nur
Delphi-Quellcode:
StringList_MN.Sorted := True;
StringList_MN.Duplicates := dupIgnore:
...
StringList_MN.Add(S);
und CustomSort weglassen.