This is slightly off-topic, not related to only ComboBoxes, but I would like to advertise the unit LookupStringList in LazUtils package.
Class TLookupStringList is an unsorted StringList with a fast lookup feature.
Internally it uses a balanced tree container (TStringMap) to store the strings again which is then used for Contains, IndexOf and Find methods.
It is very memory efficient, because:
1. Strings have reference count and lazy copy semantics. It means only a reference to a string is copied to the other container.
2. A balanced tree is memory efficient compared to a hash map.
This class is useful when you must preserve the order in list, but also need to do fast lookups to see if a string exists, or you must prevent duplicates.
There is also a function Deduplicate().