I don't have a question, but I want say something.

Filtering of TileList

TTMSFMXTileListFiltering = (lfRandom, lfStart);

Why do you choose lfRandom for "contains"? The filtering works either with check of "containing" or check of "start with".

Or have I missunderstood something?

The lfRandom is checking if the value is found within the item. lfStart is checking if the item starts with the value of the filter.

Yes, I thought so. But why is it called "random"?

Because it checks if the filter is found inside the item on a random place. Not at the start, not at the end. We could indeed have made the choice for Contains instead of Random.