如何让鼠标跟随文字,脱离Form1窗体使用?
本帖最后由 冥界3大法王 于 2019-12-17 11:00 编辑unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,stdctrls,extctrls; //后两个为动态创建控件的类
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure Timer1Timer(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
lab : array of TLabel;
mx,my:integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var i,t:integer;
s:string;
begin
s:='欲穷千里目,更上一层楼。'; //作业:改为汉字 ,有字体、颜色
t:=length(s);
for i:=0 to 11 do
begin
lab:=TLabel.Create(Application.MainForm);
lab.Parent := self;
lab.caption:=copy(s,i*4,4)+' ';
lab.Left :=50+60*i;
lab.DragMode := dmAutomatic;
lab.Font.color:=clRed; //设置颜色
lab.Font.Name:='隶书'; //设置字体
//设置每一个字的颜色都不同
case i of
0: lab.Font.color:=clRed;
1: lab.Font.color:=clGreen;
2: lab.Font.color:=clFuchsia;
end;
//self.Color:=rgb(random(2147483647));
// self.Color:=floor(random(2147483647));
end;
end;
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
// mx:=x;
// my:=y;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
vari:integer;
begin
for i:= 11 downto 1 do //从后往前逐一给每个字符新的位置坐标
begin
lab.Left :=lab.Left +50;
lab.Top :=lab.Top ;
end;
lab.Left:=mx+50; //第一个点的坐标为当前鼠标的坐标mx,my
lab.Top:=my;
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
mx:=x;
my:=y;
end;
end. 谢谢分享 Delphi,太多年没用了,很是怀念啊。
页:
[1]