You could use google to find even more zib/compression libraries, or you could write your own package system. If you don't have a lot of demands, this can be simple. If you want to have directories within the package, it becomes a lot harder (I can tell, I've been there. ).

You could write your own package loader/saver by using streams. This may be a good choice as you will learn alot. Check this link If you want to get crackin with Streams:

http://delphi.about.com/od/vclusing/l/aa110803a.htm


You just make a TFileStream object to create a new file (or open an existing one). After that, you can feed your data to the stream, or read data from it. Usually, you start with a little header telling you what and how many data is stored in the file. By using the header data, you can read chunks of data and treat them as seperate files. You could then load the files into your application. (Remember that many objects like TBitmap have a LoadFromStream and SaveToStream method).

Just take a look at streams if you find it interesting. If you want a simple example of how to use them, just ask.