At the moment (well not THIS moment), I am creating an image grabbing (as in: downloading) application/tool. Just for the fun of it. There are a lot of imagegrabbers out there. Mine is simple (for now). It expects you to input an URL of an image (the first one would be nice) of an image gallery, that has images like picture001.jpg, picture002.jpg, etc. Together with this URL you need to specify how many images are there. It will increase from 001 to 002 to 003 etc until it fetched the number of images you specified (it handles gaps (non-existant images) properly).
For internet-communication, I use the Indy components.
To have an “AfterPaste” event, I created a descendant of TEdit (I call it TRaReEdit). It fires the AfterPaste (still OnPaste, but I have to rename that) event when you paste something in the URL-field, either by using the keyboard (CTRL-V) or the mouse (Right-click & Paste). I needed this event to split up the URL into pieces, whereas I assume(d) that when typing (instead of pasting) a user would not mind tabbing between fields.
Images can be saved in a directory the user specifies.
For now, you have to wait until the first batch of images is done, before you can have another go. This will change when I move the downloading part to a seperate thread. Yep, multithreading, with some sort of queueing mechanism filling the thread.
Already in place is a thumbnail of the last downloaded image. This will change when the downloads are actually “remembered” (enter: database backend), because clicking a thumbnail will bring up the actual image (if still accessible). When the image is not on disk anymore, an dialog will ask if you want to download the image again.
Anyone coming up with a neat name for this will have his/her name stated in the credits.
I won’t post a screenshot, since most imagegrabbers know: it is nsfw!