You should really have posted some code to save us knocking up test code.
You are correct though in what you say. Appears you have to hide the light before deleting it otherwise is still shows.
sync on : sync rate 0 : autocam off
cls rgb(255,0,0)
get image 1,0,0,4,4
make matrix 1,1000,1000,32,32
prepare matrix texture 1,1,1,1
hide light 0
set ambient light 30
for f=1 to 7
make light f
set point light f,0,0,0
set light range f,200
position light f,(f+1)*100,50,500
next f
position camera 500,40,0
do
set cursor 0,0
print "Press 1-7 to delete light" : print
for f=1 to 7
print "Light ";f;" = ";light exist(f)
next f
s=scancode()-1
if s >= 1 and s <= 7
if light exist(s)
` hide light s
delete light s
endif
endif
sync
loop
Boo!