First off, you will need a timer. Add a private variable, name it 'timer'. You will also have to store original coordinates.
+ On Left Click
+ Square('timer')= 0 // this is to make sure the object isn't already moving
Square('OrigX')=Square.X
Square('OrigY')=Square.Y
Square('PointX')=MouseX
Square('PointY')=MouseY
Square('timer') = timedelta // this would initiate the move
+ Square('timer') larger than 0 and smaller than 1 // while moving
Square: set position to X = lerp('OrigX','PointX','timer'), Y = lerp('OrigY','PointY','timer') // linear movement between the two points
Square('timer') = 'timer' + timedelta // increasing the timer will make it move along the line, up to value of 1; this influences the speed, so you probably want to use a fancy equation to move at set speed. The value should be between zero and one.
+ Square('timer') equal to or greater than 1 // the square is at or exceeding the goal
Square: set position to 'PointX', 'PointY' // this is to make sure it is at exact position, in case of overshooting
Square('timer') = 0 // this basically stops and waits until you click somewhere again
This may appear more complicated than the prior example, however you are at a liberty to define the movement pattern. For example, you could use various interpolation methods. This is the most robust method that makes sure the square reaches the EXACT location.
As for the set speed, you'll have to increment the timer in a way it matches the desired speed. I think multiplying timedelta with desired speed should do the trick, but don't quote me on that.