Building an app to allow for for updates via internet

Hi there,
I have built a few applications. The .exe's range between 3-5 mb. This is not huge but I would like to give my users the ability to update there  version of the application through the internet. Currently the only way that they can do this is by downloading an entirely new exe. This will take my users to long as our internet connections are not very fast.

How can I rebuild my applications so that the .exe is small? Would i need to move all my code into .dll's?
Are there any titorials around that can help people with how to do this?

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

also, for updating, you might consider realeasing patches. here is somethign that could look promising: (never tried it though)
another base technique is to not put everything into one exe only. resources like pictures and videos can go into a separate dll, functionality can go into another dll and only the forms should go into the final exe. this way each of your new version does not essentially have to release ALL files again, only few or one of them.

also consider the following issues:
- compress your files when making them available thru internet, i suggest .ZIP as its most accessable for all (.RAR is the best but users may get annoyed to download another software to access .RAR files; and .CAB can be decompressed by ANY windows version, but only few users know how)
- compile your exe with a lot of compiler options disabled, most important of all: "debug info"
- when using pictures, always use JPEGs, PNGs or GIFs when supported
- dont create forms for every simple case; the source of the "InputQuery"-function shows very well how a quite simple form can be built at runtime - this way it doesnt consume place as a resource
Cloud Class® Course: Microsoft Exchange Server

The MCTS: Microsoft Exchange Server 2010 certification validates your skills in supporting the maintenance and administration of the Exchange servers in an enterprise environment. Learn everything you need to know with this course.

I would say update the dlls rather than the exe, put all your main routines into a dll but that too would give several problems calling parameters for one, the fact the program may have the dll in memory etc etc.
myleseven2Author Commented:
I think the biggest problem I have is that I have many Jpeg files on every form in all my applications.
Where can I learn how to put these .jpeg files into a seperate file to referenced at run time
can't you store them as jpgs and call them dynamically?


you can leave the picture component but leave it blank that way delphi does not automatically create a resource for it and store it internally.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
myleseven2Author Commented:
As soon as I posted this I realised that that is what you can do, thanks for your help the points are yours
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.