在Delphi中,可以用GetCursorPos这个Windows的API来获取鼠标的绝对位置,而在Lazarus(FPC)中,没有GetCursorPos这个函数,需要使用另外的方法。
在FPC的lcl的controls.pp中定义了TMouse类,通过它就可以获取鼠标的位置。
先建立一个空白的程序,然后添加主窗体的FormMouseMove事件,在事件中获取鼠标的位置。演示代码如下:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs;
type
{ TForm1 }
TForm1 = class(TForm)
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
myMouse: TMouse;
implementation
{ TForm1 }
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
mp: TPoint;
begin
mp := myMouse.CursorPos;
Caption := IntToStr(mp.x)+', '+IntToStr(mp.y);
end;
initialization
{$I unit1.lrs}
end
如果想修改鼠标的位置也很简单,直接对myMouse.CursorPos赋值。
文章评论(0条评论)
登录后参与讨论