mouse_unit.pas
来自「一系列DELPHI的控件如何使用的例子,例子有的比较简单,但是能详细的说明了控件」· PAS 代码 · 共 68 行
PAS
68 行
unit mouse_Unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
GroupBox1: TGroupBox;
procedure GroupBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure GroupBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure GroupBox1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
opos:tpoint; //记录原始位置
cpos:tpoint; //记录当前位置
dpos:tpoint; //记录鼠标按下时位置
mlbd:boolean; //标记鼠标左键是否按下
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.GroupBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
opos.X:=GroupBox1.Left; //记录原始坐标位置
opos.Y:=GroupBox1.Top;
dpos.X:=x; //鼠标按下位置
dpos.Y:=y;
dpos:=clienttoscreen(dpos);
if button=mbleft then
mlbd:=true;
end;
procedure TForm1.GroupBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if mlbd then
begin
cpos.X:=x;
cpos.Y:=y;
cpos:=clienttoscreen(cpos);
GroupBox1.Left:=opos.X+(cpos.X-dpos.X);
GroupBox1.Top:=opos.y+(cpos.y-dpos.y);
end;
end;
procedure TForm1.GroupBox1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
mlbd:=false;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?