Bonjour à tous.
Le tri alphabétique ne se fait pas correctement dans un TStringList lorsque des chaines contiennent des caractères accentués.
En attendant une implémentation dans une version ultérieure de Lazarus, voici de quoi vous dépanner.
Deux manières :
a) utiliser TLatinStringList (dans le zip) qui est dérivé de TStringList avec simplement un override de la fonction DoCompareText : remplacement, pour le tri, des caractères accentués par leur correspondant non accentué. L'avantage est que, pour une liste triée, l'ajout de nouvelles chaines va directement se faire au bon endroit. L'inconvénient est que les fonctions Find et IndexOf (qui utilisent DoCompareText) ne vont plus distinguer "élève" de "élevé". Ce qui ...
Voir la suite