OnCreate event is for your program to initialize data. If you do any drawing/painting here, nothing will be drawn on the screen, and it may cause exception. The reason is, The form, canvas, etc aren't actually being created when the execution runs into the OnCreate event. As the name suggests, it is for you to initialize your data.
OnRepaint? I checked my TForm, I couldn't find OnRepaint. No comment.
OnResize, as the name suggests it will be fired when you resize the form. Put you code here if you need to do the calculation for rearranging the layout if the size of the form is changed.
OnPaint. Any drawing/painting should be put here. As the name suggests OnPaint, any non-painting related code shouldn't put here. For your case, loading an image from disk, shouldn't be here. You may not notice the problem, but if the file is huge and you're running the code on a slow computer, the program will be noticeable delay. The better solution is load the picture only once and store in the memory, so there will be no reloading next time you need it.
OnShow. Don't put any drawing/painting code here. I rarely use it, no comment.