Just sue the CreateCircle method in the MapBasic window, or just put it behind a quick and dirty dialogue with all the maths worked out behind the scene
Create circle in MapBasic
CreateCircle( x, y, radius )
x is a float value of the circle's center.
y is a float value of the circle's center.
radius is a float value, indicating the circle radius.
As for capturing a mouse click, Read the MapBasic Manual especially "Create ButtonPad statement", but you'd have to write some custom code for this, a bit like this:
Use the CommandInfo() function with the CMD_INFO_X
and CMD_INFO_Y parameters and you can retrieve the info from the point you click on
from here, you can bring up a dialogue/code, with which you can then add the createCircle functionality
Declare Sub Main
Declare Sub get_map_click
Alter ButtonPad "Tools"
HelpMsg "Click on map"
Note "x:" + Round(CommandInfo(CMD_INFO_X), 0.1) + Chr$(10) + "y:" + Round(CommandInfo(CMD_INFO_Y), 0.1)
'add code to create a circle to whatever layer you want
You'd have to click the button each time you wanted to capture a point.
Please note, I have not written MapBasic code for a couple of three years, so please have a look at the user/reference guide before you commit this to production data or anything silly like that. I am sure this is how you'd do it, but make sure first please.