RE:programar un circuito electrico con imagenes
Sería bueno que entendieras como es que funciona el drag y el drop de componentes, todas las funciones del canvas de cualquier objeto, el uso de vectores y mucha creatividad.
Puedes empezar dibujando un rectángulo (Objeto.Canvas.Rectangle(Rect)) y pulsarlo, que recojas el evento del pusado del muse (OnClick) y si cae dentro del rectángulo pintarlo. Luego, si ya sabes como distinguir el pulso del mouse, probar con los eventos de botón abajo y arriba del mouse (OnMouseDown y OnMouseUp), para implementar el drag y el drop. Luego, saber como definir los nodos de conexión (puntos en la silueta de tus dibujos), para saber donde conectar las líneas de conexión, ya sea que las quieras directas o con codos o curvas (también hay que saber como hacer líneas curvas). Y por último, combinar todo eso, para que en un componente (puede ser un scrollbox) 'pintes' tus componentes.
Saludos.