类似屏幕保护的功能,img1在主窗体上随机移动。
解决方案 »
- 如何在Image显示图片的指定区域?
- 怎样自定义窗体的界面样式(我们自己画一个边框样式,但是怎样才能用到Delphl中去)
- 文件夹拷贝
- 谁知道有没有统计源代码的工具?
- 怎样让Delphi编译出来的程序没有调试信息?
- DELPHI调用VC编写的DLL问题
- 三层结构:入门级问题,非同一台机器之间访问:interface not supported !
- [求助]Datasnap 技术讨论 Rest Application/Datasnap Server/WebBroker Application区别
- 还是关于webbrowser的???
- DSPack 通过摄像头输出视频,怎么做到和QQ一样.例如头向左移,视频也向左移,而不是像右移动
- 求 delphi版的灰鸽子的控件
- 求指导
procedure TForm1.Timer1Timer(Sender: TObject);
begin
randomize; // 设置随机种子
if random(10)=0 then // 随机数 0-9 当随机数=0时 (1/10的机率)
timer1.Tag :=random(4); // Tag 是供用户自由使用的integer变量
// 这里随机取0-3值 case timer1.Tag of
0: begin
if image1.Left >0
then image1.Left:=image1.Left-10 // 图像左移10像素
else timer1.Tag:=1 // 图像不动 Tag=1
end;
1: begin
if image1.Left+image1.Width <form1.Width
then image1.Left:=image1.Left+10 // 图像右移10像素
else timer1.Tag:=0
end;
2: begin
if image1.Top >0
then image1.Top :=image1.Top-10 // 图像上移10像素
else timer1.Tag :=3
end;
3: begin
if image1.Top+image1.Height <form1.Height
then image1.Top :=image1.Top+10 // 图像下移10像素
else timer1.Tag :=2
end;
end;
end;// 将对象拖过控件的边界时发生
procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
image1.Left :=x;
image1.Top :=y;
end;// 将对象拖过控件的边界时发生
procedure TForm1.Image1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
if (image1.Left=x) and (image1.Top=y) then
timer1.Enabled :=false;
end;// 鼠标指针移到控件上时发生
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
timer1.Enabled :=false // 鼠标移到图像上时停止timer1(移动)
end;// 原方法 procedure CMMouseLeave (var Message: TMessage); message CM_MOUSELEAVE;
// wm_mouseleave是windows的消息
// 它是获得Delphi的内部消息,鼠标离开时发生
procedure TForm1.cmmouseleave(var Message: TMessage);
begin
timer1.Enabled :=true // 鼠标离开时启动timer1(移动 )
end;说清楚了吗?