Stick with what you know - if you're using Borland's vcl 'TPicture'/'TImage' object(s) then look for some sort of 'Release' or 'free' method to free the resources associated with it (it might be 'delete', I'm not sure as I've not used Borland Builder in a long time - check the documentation). If it has no explicit method to do that then its destructor is probably responsible; you then need to look at the way you have written your code to ensure that one picture/image object is used for one image only or, if it's used mutliple times, that you free image resources between uses.

If you're going to go down the winapi route then you're still going to have to use DeleteObject eventually on whatever gets returned from each LoadImage call.