Salve,
non so se ho capito bene la tua domanda, la soluzione dovrebbe essere questa:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
StartX,StartY :integer; (* variabili globali *)


implementation

{$R *.dfm}



procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
Form1.Canvas.Rectangle(StartX, StartY, X, Y);

(* disegna il rettangolo quando si alza il Bt Sx del mouse*)
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var AX,AY:integer;
begin
StartX := X;
StartY := Y;
(*legge le coordinate del mouse quando si clicca con il Bt Sx del mouse *)
end;

end.

Attenzione a mettere in Form1 Eventes On MouseDown la procedura FormMouseUp
e in Form1 Eventes On MouseUp la procedura FormMouseUp.

(innocentemente copiato dall'help di delphi 6)

Buon lavoro