type
  TForm1 = class(TForm)
  private
    { Private declarations }
    procedure WMMOVE(var Msg: TWMMOVE); message WM_MOVE;
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.WMMOVE(var Msg: TWMMOVE);
begin
  Caption := Format('%d,%d', [Msg.XPos, Msg.YPos]);
end;

解决方案 »

  1.   

    //移动不要用标题的
    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm2 = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
        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 }
        FHandle: THandle;
        FX: Integer;
        FY: Integer;
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementation{$R *.dfm}const
      MY_MESSAGE = WM_USER + 10;procedure TForm2.FormCreate(Sender: TObject);
    begin
      FHandle := FindWindow('TForm1', 'Form1');
      if FHandle = 0 then ShowMessage('没有运行监听程序');
    end;procedure TForm2.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    var
      vWMMOVE: TWMMOVE;
    begin
      if Tag = 0 then Exit;
      if FX > 0 then begin
        Left := Left + (X - FX);
        Top := Top + (Y - FY);
      end;
      if FHandle = 0 then Exit;
      vWMMOVE.Msg := MY_MESSAGE;
      vWMMOVE.Unused := Handle;
      vWMMOVE.XPos := Left;
      vWMMOVE.YPos := Top;
      SendMessage(FHandle, MY_MESSAGE, TMessage(vWMMOVE).WParam, TMessage(vWMMOVE).LParam);
    end;procedure TForm2.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      FX := X;
      FY := Y;
      Tag := 1;
    end;procedure TForm2.FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      Tag := 0;
    end;end.unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;const
      MY_MESSAGE = WM_USER + 10;type
      TForm1 = class(TForm)
      private
        { Private declarations }
        procedure MYMESSAGE(var Msg: TMessage); message MY_MESSAGE;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.MYMESSAGE(var Msg: TMessage);
    var
      vWMMOVE: TWMMOVE;
      vRect: TRect;
    begin
      TMessage(vWMMOVE) := Msg;
      GetWindowRect(vWMMOVE.Unused, vRect);
      Caption := Format('Time:%.6f,U:%d,X:%d,Y:%d', [Now, vWMMOVE.Unused,
        vWMMOVE.XPos, vWMMOVE.YPos]);
      Width := vRect.Right - vRect.Left;
      Height := vRect.Bottom - vRect.Top;
      Left := vRect.Left + (vRect.Right - vRect.Left);
      Top := vRect.Top;
    end;end.
      

  2.   

    : zswang(伴水)(被黑中) 真是厉害收藏