pos机滑轮怎么安装(「9键盘鼠标和文件编程」2鼠标编程)

快鱼网 13 0

2.鼠标编程2.1鼠标的常用事件OnClick

单击鼠标左键时触发该事件。

OnMouseDown

当单击鼠标任一键时触发该事件。

OnMouseMove

当单击鼠标在对象上移动时触发该事件。

OnMouseUp

当鼠标的任一键按下后松开时触发该事件。

示例:检测窗口上的鼠标动作,不同的鼠标动作在窗口的 Memo 组件中输出动作的名称。界面如下:

代码如下:

procedure TForm1.FormClick(Sender: TObject);begin Memo1.Lines.Add('Click');end;procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin Memo1.Lines.Add('Down');end;procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begin Memo1.Lines.Add('Move');end;procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin Memo1.Lines.Add('Up');end;2.2鼠标拖放事件OnDrogDrop

鼠标拖拽开始时触发该事件

OnDrogOver

鼠标推拽对象经过组件时触发该事件

OnEndDrag

鼠标拖拽结束后触发该事件

鼠标拖拽事件开发步骤:

1.开始拖拽

一般组件对于拖拽事件的属性:

DragMode

拖拽操作方式,取值为:

dmManual - 手动,必须在被拖拽组件的OnMouseDown事件中调用 BeginDrag() 过程才可以开始拖拽操作dmAutomation - 自动,当鼠标左键在组件上按下后自动可以开始拖拽操作

2.接受拖拽

当鼠标拖拽一个组件经过另一个组件时,另一个组件会触发 OnDrogOver 事件,参数:

Accept

该参数表示当前组件(也就是上面的另一个组件)是否接受拖拽,设置为:

True,表示接受拖拽,则该组件会产生 OnDragDrop 事件False,不接受拖拽

3.处理拖拽

在另一个组件触发的OnDragDrop 事件中,处理拖拽操作。参数:

Source

表示拖拽操作的源,也就是按下鼠标开始拖拽的组件。

4.拖拽结束

拖拽操作完成后,会在第一个组件中触发 OnEndDrag 事件,参数:

Target

表示拖拽操作的目标组件,如果为 nil,表示没有组件接受拖拽操作,不为 nil,表示 Target 组件接受了拖拽操作。

示例:将窗体中的 Label 组件拖拽到 Memo 上,界面如下图:

示例代码:

procedure TForm1.LabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin // 鼠标在 Label 上按下时 , 所有 Label 的 OnMouseDown 事件 if (Button = mbLeft) and (Sender is TLabel) then (Sender as TLabel).BeginDrag(false);end;procedure TForm1.Memo1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);begin // 拖拽到 Memo 组件上时 if Source is TLabel then Accept := true;end;procedure TForm1.Memo1DragDrop(Sender, Source: TObject; X, Y: Integer);begin // 处理拖拽 if Source is TLabel then (Sender as TMemo).Lines.Add((Source as TLabel).Caption);end;procedure TForm1.LabelEndDrag(Sender, Target: TObject; X, Y: Integer);begin // 在 Label 上拖拽结束时, 与 在 Memo 上拖拽处理 选择其中一个来实现即可 // 所有 Label 的 OnEndDrag 事件 // if Target is TMemo then // (Target as TMemo).Lines.Add((Sender as TLabel).Caption);end;2.3鼠标滚轮事件OnMouseWheel

鼠标滚轮滚动时触发该事件

OnMouseWheelDown

鼠标滚轮向下滚动时触发该事件

OnMouseWheelUp

鼠标滚轮向上滚动时触发该事件

示例:在 Memo 组件中显示鼠标在窗体上滚轮的事件,界面如下图:

示例代码:

procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);begin Memo1.Lines.Add('Wheel');end;procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);begin Memo1.Lines.Add('WheelDown');end;procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);begin Memo1.Lines.Add('WheelUp');end;2.4鼠标事件相关的参数

参数

取值

说明

Sender

触发事件的对象

Button

mbLeft

鼠标左键

mbRight

鼠标右键

mbMiddle

鼠标中键

Shift

ssShift

按下Shift键

ssAlt

按下Alt键

ssCtrl

按下Ctrl键

ssLeft

单击鼠标左键

ssRight

单击鼠标右键

ssMiddle

单击鼠标中键

ssDouble

双击鼠标

X|Y

鼠标当前的位置

WheelDelta

滚轮转动的角度

MousePos

鼠标当前的位置

标签: 鼠标

抱歉,评论功能暂时关闭!