Your problem is you making more complicated then you need to.
Since you media is created/displayed and then deleted as a title before the main loop and game you could put them before and can use a wait for the title.
preparemedia()
wait 1500
deletemedia()
do
set cursor 0,0
print "0 means media deleted before the loop starts"
print "image exist =",image exist(1)
print "sprite exist =",sprite exist(1)
loop
function preparemedia()
load image "whatever.bmp",1,1
sprite 1,170,50,1
endfunction
function deletemedia()
delete sprite 1
delete image 1
endfunction
however if you needed to display the image during the game instead of just at the beginning you could use your method you would just have to control it so the action causing the image to be displayed and then deleted could only be called one time since the media is deleted.
sync on
sync rate 0
preparemedia()
do
if spacekey() = 1 and once = 0
once = 1
endif
`*** show title for short time ***
if once = 1
inc title
show sprite 1
if title > 1500
once = 2`get rid of title
deletemedia()
endif
endif
set cursor 0,0
print "1 media exist 0 media is deleted"
print "image exist =",image exist(1)
print "sprite exist =",sprite exist(1)
sync
loop
function preparemedia()
load image "whatever.bmp",1,1
sprite 1,170,50,1
hide sprite 1
endfunction
function deletemedia()
delete sprite 1
delete image 1
backdrop on
endfunction
Your signature has been erased by a mod -- please resize to under 600x120...