Wie kann ich nun sicherstellen das eine auf meinem PC sortierte Liste auf ALLEN Systemen gleich sortiert bleibt und die Routine dann auf ALLEN PC's das richtige Ergebnis liefert?
Die Sortier-Methode, die von der Stringlist intern verwendet wird, benutzt AnsiCompareText bzw. AnsiCompareString (je nachdem, ob CaseSensitive gesetzt ist oder nicht). Daher musst du mit deiner Binärsuche auch diese Vergleichsoperation nutzen.
Wenn du die Liste zur Laufzeit sortierst (und nicht z.B. aus einer Textdatei lädst und implizit annimmst, dass sie dann sortiert ist), dann sollte der Code mit AnsiCompareXXX überall funktionieren. Allerdings ist die Sortierung ggf. anders - aber davon merkst du bei der Suche nichts.
Wenn du die Sortierung länderunabhängig immer gleich haben willst, dann musst du deine eigene Sortierfunktion schreiben, bzw. eine eigene Compare-Funktion, die du dann mit CustomSort verwendest. Und diese Compare-Funktion musst du dann auch in der Binärsuche nutzen.
The angels have the phone box.