There's a whole lot of projection going in your post - you're far too sure of people's guiding motivations based on a throwaway description of a momentary incident, to the point that you're now accusing another poster of weakening people in their community through willingness to lend a hand.
I also recognize that direct charity prevents or delays people from finding a better solution
You may claim that, but don't try to pass your opinion off as some universal truth that you 'recognize' while other people can't.
The solution is to build ways out. Shelters and job programs do help. Direct charity, giving money to beggars, only keeps them begging.
Employ homeless people.
Give a homeless person a break. Maybe just ignore them in their shelter. They must do everything in public, for they rarely have a private space. They can't afford the luxury of choosing which actions others may view.
Learn how communities in your area address the homeless people who live there. Remember that homeless people do still live somewhere. This is not a part of their life they will be proud of, but it's not the end of their life, not a permanent placement.
I also recognize that direct charity prevents or delays people from finding a better solution
You may claim that, but don't try to pass your opinion off as some universal truth that you 'recognize' while other people can't.