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 Timer1Timer(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); //把系统提供的 Cursor 全部加入到 Screen.Cursors var i: Integer; begin for i := 0 to 22 do begin Screen.Cursors[i] := TCursor(-i); end; {同时设定 Timer1 没 1/4 秒执行一次} Timer1.Interval := 250; {但是很奇怪, 这时的 Screen.CursorCount 竟然是 0? 糊涂了} end; procedure TForm1.Timer1Timer(Sender: TObject); //让窗体的光标随机更换 begin Self.Cursor := Screen.Cursors[Random(22)]; end; end.
//后来的补充 - 如果仅仅要这个效果, 这样就够了: procedure TForm1.FormCreate(Sender: TObject); begin Timer1.Interval := 250; {设定 Timer1 没 1/4 秒执行一次} end; //让窗体的光标随机更换 procedure TForm1.Timer1Timer(Sender: TObject); begin Self.Cursor := TCursor(-Random(22)); end;