吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1114|回复: 3
收起左侧

[求助] 如何让鼠标跟随文字,脱离Form1窗体使用?

[复制链接]
冥界3大法王 发表于 2019-12-17 10:52
本帖最后由 冥界3大法王 于 2019-12-17 11:00 编辑


[Delphi] 纯文本查看 复制代码
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[0..255] 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[i]:=TLabel.Create(Application.MainForm);
       lab[i].Parent := self;
       lab[i].caption:=copy(s,i*4,4)+' ';
       lab[i].Left :=50+60*i;
       lab[i].DragMode := dmAutomatic;
       lab[i].Font.color:=clRed;   //设置颜色
       lab[i].Font.Name  :='隶书';   //设置字体
        //设置每一个字的颜色都不同
       case i of
       0: lab[i].Font.color:=clRed;
       1: lab[i].Font.color:=clGreen;
       2: lab[i].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);
var  i:integer;
begin
     for i:= 11 downto 1 do   //从后往前逐一给每个字符新的位置坐标
             begin
       lab[i].Left :=lab[i-1].Left +50;
       lab[i].Top :=lab[i-1].Top ;
      end;
            lab[0].Left:=mx+50;     //第一个点的坐标为当前鼠标的坐标mx,my
            lab[0].Top:=my;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
     mx:=x;
     my:=y;
end;

end.

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
mokson 发表于 2019-12-17 11:13
提示: 作者被禁止或删除 内容自动屏蔽
zhangyuzha 发表于 2019-12-17 11:14
useic 发表于 2019-12-17 13:45
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-30 08:42

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表