Das geht z.B. mit einer Paintbox
Dazu brauchst du:
Array [5] of TPoint
Pointer auf TPoint ActivePoint
Paintbox
Im PaintBoxPaint machst du dann sowas:
Delphi-Quellcode:
for int i := 0 to 4 do
paintbox.canvas.ellipse(array[i])
Und im OnMousedown sowas wie:
Delphi-Quellcode:
for int i := 0 to 4 do
begin
int d = sqrt( sqr(maus.X - point[i].X) + sqr(aus.y - point[i].y))
if d < 4 then // oder was fürn Radius anklickbar sein soll
begin
activepoint = point[i];
break;
end;
end;
Im OnMouseMove dann den ActivePoint (falls <> nil) bewegen (und paintbox updaten), und im OnMouseUp dann activePoint := nil;
Das sollte zumindest für einen Anfang reichen, ein paar einheiten kann man da aber bestimmt noch verbessern
Obiger Code ist mehr oder weniger Pseudocode, also nicht syntaktisch korrekt oder gar getestet