⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 有关多媒体的各个细节
💻 PAS
字号:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Image1: TImage;
    Label1: TLabel;
    procedure Label1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Label1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  origin:Tpoint;
  image_left:integer;
  image_top:integer;
  visa1:Tpoint;{鼠标当前位置相对图像右下角的坐标}
  visa2:Tpoint; {鼠标当前位置相对图像左上角的坐标}
  canmove:boolean;

implementation

{$R *.DFM}
//鼠标左键按下,记录当前位置
procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button=mbLeft then
    begin
     origin.x:=X;
     origin.y:=Y;
     image_left:=image1.left;
     image_top:=image1.top;
     visa1.x:=X-(image1.width-panel1.width+image1.left);
     visa1.y:=Y-(image1.height-panel1.height+image1.top);
     visa2.x:=X-image1.left;
     visa2.y:=Y-image1.top;
     canmove:=true;
    end;
end;

//按下鼠标左键移动,移动图形
procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
   if canmove then
    begin
     if X< visa1.x then X:=visa1.x;
     if X>visa2.x then X:=visa2.x;
     if Y< visa1.y then Y:=visa1.y;
     if Y>visa2.y then Y:=visa2.y;
     image1.left:=image_left+(X-origin.x);
     image1.top:=image_top+(Y-origin.y);
    end;

end;

//松开鼠标左键,停止图形移动
procedure TForm1.Label1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  canmove:=false;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -