If you have kids you already know just how hard it is for them to try and postpone things that they like to do or want to get. Kids want it now an not tomorrow let a lot a few months down the road. Whether it's a young child or a teen, they very, very good at trying to spend your hard earned money without any thought of how hard you worked to earn that money. One of the biggest mistakes you can do as a parent is give your child whatever they ask for. You do this and your child will never learn a thing about the value of a dollar.
First thing, you should probably let them have some of their own money. If a child has their own money then they are going to have to make their own decisions on how to spend their own money instead of spending your money.
You shouldn't just give them the money for nothing. You need to teach them how to earn that money and usually the best way of doing that is to assign them chores. Young children can do easier things like putting their clothes away or cleaning up their room. Teens can do far more besides their room, they can be assigned to do yard work, take the trash out, clean the bathroom, clean the car, especially if they want to drive it.
Once they start earning their own income the next thing you are going to have to try to do is encourage them to save some of their money. Even go as far as to open up a savings account and take them to the bank on a regular basis and let them deposit their own amount of money. Don't try and make them save everything they earn just a percentage of it. They do need to have a little spending money just like you do. The money they get as gifts like birthdays and Christmas should always be theirs to spend and you should never ask them to save back any of that. One way to encourage them to save on their own is to offer to match what they save. So if they put $5 in their account you can match it by adding $5 to it.
When they go shopping, go with them and try to teach them to look for sales and bargains. If there is something they want but they may not have enough saved up for the one they are looking at show them how to go and look for bargains where they might be able to find the same thing or something similar for a lot less money.
Sit down with your kids on a regular basis and go over their finances with them. Review the things they are buying and see if you can help them learn how to spend their money wiser and how to get more value out of their money. This is a way to help them to learn not to buy without thinking or researching first, it could also teach them to be more patient as well.
If your child runs out of money before their next allowance day, don't bail them out! Do not give them any money. This is the worst thing you can do, you're teaching them nothing by doing this. They need to learn from their own mistakes and what the consequences are if they spend all of their money before they get paid again. If they are flat broke, oh well, they need to understand that if they just blew their money they only have themselves to blame. If there is a good reason for them being broke you might offer them a loan but that's what it is, a loan and they must pay you back out of their allowance.
If they set a goal and reach it, then you need to make sure that you praise them for a job well done. Compliment them on their patience in saving the money they needed for something they wanted. This will reinforce positive feelings about saving money on their own.