Das kann man mit folgenden 3 Prozeduren machen (die bekommst du über den Objektinspektor)
Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Du brauchst 5 globale Variablen
xo, yo, xu, yu (X-Oben, Y-Oben, X-Unten, Y-Unten)vom Type Integer
fMouse vom Type Boolean
Bei MouseDown setzt du fMouse auf true und und gibst xo und yo die Mausposition
Bei MouseMove fragst du zuerst ab, of fMouse true ist. Dann gibst du xu und yu die aktuelle Mausposition und zeichnest ein Auswahlfenster
Canvas.DrawFocusRect(Rect(xo,yo,xu,yu));
Bei Mouseup kannst du dann mit den Rechteckkoordinaten weiterarbeiten und fMouse auf false setzen, damit nicht weiter das Auswahlsfenster angezeigt wird.