procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  SetCaptureControl(Nil);
  SendMessage(Handle,WM_NCLBUTTONDOWN,HTCAPTION,0);
end;
放开鼠标左键后不能响应onMouseUp事件。

解决方案 »

  1.   

    在form1的事件中选取onkeyup事件,然后在里面加代码;
    procedure Tform1.FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
    ...
    end;
      

  2.   

    不行。
    我说的是在拖动完以后,马上执行。请试一下,不能执行Onmouseup事件中的代码。
      

  3.   

    你可以首先在OnMouseUp中加上窗体移动检测的代码,
    例如:
    procedure Tform1.FormMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var 
    formoldtop:integer;
    formoldleft:inteter;
    begin
    if (form1.top<>formoldtop) and (form1.left<>formoldleft) then
     
    ...
    end;