Yo cogería el formulario y lo maximizaría.
En el habría puesto un control image
Habría cargado la imagen del cuadrado con la función loadpicture
ie: Image1.picture=loadpicture("C:Cuadrado.bmp")
Después usaría el arrastre de este objeto
y en el evento del Form_DragDrop
controlaría cuan cerca ha ido a parar el cuadrado del borde del formulario y si es lo suficiente cerca cargaria la imagen del circulo
Image1.picture=loadpicture("C:circulo.bmp")
Si te parece medianamente aceptable esta idea y necesitas algo más de ayuda solo tienes que decirlo