Тут главное, чтобы логика работы была не очень запутанной (что порой случается в результате "шанхаестроения")
Иногда следует остановиться, и сказать: "
Стоп себе думаю, а не дурак ли я ..."
У нас есть как бы два независимых фильтра: Include (Files/Dirs/All), и Маска.
И в результате два события onSearch или onOtherFiles. Плюс инкремент счетчика FCount.
Какая же должна быть логика ...
Например: если проходим первый фильтр, тогда проверяем маску, по результатом проверки которой - либо onSearch, либо onOtherFiles.
Не проходим первый фильтр - молчим. Счетчик увеличиваем только по onSearch.
Можно по другому: только при проходе обоих фильтров -- onSearch. Иначе (отказ любого фильтра) -- onOtherFiles.
Как видите, эти варианты при Include=Dirs по разному работают событием onOtherFiles.
Прошу уважаемых коллег высказаться, какая из логик является более логичной Или еще какой-то вариант...
А реализовать-то -- полчаса делов. Пока в теме сидишь.