I have modified youre code for TFilter since when you add strings you do it in a TStrings and cant use the TStringList.sorted := false.
I want to be able to manage the items in my Filter drop down list and not have them sorted. I changed 2 rows in your code to make the list unsorted instead.
Could you change it 2 pass the TStringList instead of the TStrings or add a Property in TFilter -> TFilter.sorted := true/false to solve this :)