zoukankan      html  css  js  c++  java
  • 怎样在delphi中实现控件和窗体的拖拽

    下面这2种方法都能实现对控件和窗体的拖拽

    方法1

    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      ReleaseCapture;
      SendMessage(Handle,WM_NCLBUTTONDOWN,HTCAPTION,0);
    end;
     

    方法2

      public
        { public declarations }
        posX, posY: Integer;
     
    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      posX := Mouse.CursorPos.X - Form1.Left;
      posY := Mouse.CursorPos.Y - Form1.Top;
    end;
     
    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    begin
      if Shift =[ssLeft] then
      begin
        Form1.Left := Mouse.CursorPos.X - posX; // 新的位置
        Form1.Top := Mouse.CursorPos.Y - posY;
      end;
    end;

    参考:http://www.cnblogs.com/xe2011/p/3426281.html

  • 相关阅读:
    抽象工厂
    组合和继承
    Mysql 设置远程连接
    websocket
    redis 持久化
    django urls
    git gitignore
    Mysql 系统表
    cudnn升级之后caffe无法训练的问题
    python numpy初始化一个图像矩阵
  • 原文地址:https://www.cnblogs.com/findumars/p/4760775.html
Copyright © 2011-2022 走看看