Interesting BatVink, i'll check that out in a sec, but, I was thinking the problem over myself, and I came up with two alternatives.
EDIT: Problem with yours though BatVink is, that when the user enters the co-ordinates for the image, they'd have to enter the TOP, LEFT, RIGHT and BOTTOM co-ordinates, which, if set to a different size than the image is, it'll change the image.
Alternative 1:
Hide the mouse cursor, then, load an image, and use that image as the cursor. (The image would be a standard cursor, so the end-user can't tell the difference)
Then, that cursor image is set to follow the position the mouse moves, so it functions exactly like the mouse. Then, you'd simply check to see, if the mouse is clicked while the cursor image is colliding with a button, execute the desired action.
Alternative 2:
Using the above code that I posted, but a modified version, like this:
DO
Mx=MOUSEX() : My=MOUSEY() : Mc=MOUSECLICK()
IF Mx>[IMAGE LEFT SIZE] AND My>[IMAGE HEIGHT SIZE (smallest)] AND Mx<[IMAGE RIGHT SIZE] AND My<[IMAGE HEIGHT SIZE (largest)]
IF Mc=1
EXECUTE FILE mapsname$(1,3),mapsname$(1,3),mapsname$(1,3),1
ENDIF
ENDIF
LOOP
RETURN
Hope somebody understands what I mean there.
Problem is, DBP doesn't have a command which can find the size of a loaded image... or does it?
Opinions on which method would be more efficient (1,2 or BatVink's) are much appreciated.
[center]