注册 登录
编程论坛 Delphi论坛

求用Dlephi做一个“抓不到的Button”程序出来!(自己突如其来的想法!)

Begin2011 发布于 2011-06-07 10:40, 472 次点击
我想做一个有趣的程序,就是用delphi做一个住不到的Button出来。
我自己的思想是这样的
在主窗体内放一个Button组件
然后在MouseMove事件上添加一下代码
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Button1.Left:=Button1.Left-10;
end;
可是这样做出来之后
Button组建只能向左移动,而且移动到最左边之后就会移出住窗体
我希望做出来的是Button组件是在主窗体之内随机移动
或者在四个角落移动也可以
但是鼠标是点不到组件上面的
请各位高手们教我啊!!
小弟感激不尽!
本人新手,求各位大神指导!
2 回复
#2
zin59702011-06-07 12:31
Button1.Left:=Button1.Left-10;
因为这样你只是设置了button1一直往左移

可以通过 button1.let和button1.top 两个来设置button1的坐标  你在这里可以随机赋值啊 只要在窗体内 即可

比如说你可以 判断 button1.left - button1.width 是否大于0 , 如果小于0了 你就改成button1.left + button1.width  
同理 如果 button1.left + button1.width  大于了你窗体的宽 那就再改成 button1.left-button1.width

总之是通过控制button1.let和button1.top 的两个属性来设置button1的坐标位置
#3
Begin20112011-06-12 20:13
我自己按照这个思路去试了一下,
发现还是不行
我的代码如下:
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Button1.Left:=Button1.Left-10;
  Button1.Top := BUtton1.Top-5;
  if (button1.left - button1.width<0) or
  (Button1.Top-button1.Height<0) then
  repeat Button1.Left:=Button1.Left+10
  until button1.Left+button1.width>form1.Width;
end;
结果到最后那个Button还是消失在了窗体之中
希望各位大神给出详细代码
本人乃是一菜鸟
诚心希望大神们的指点.
再次给出以下要求:
我希望做出来的是Button组件是在主窗体之内随机移动
或者在四个角落移动也可以(随机移动!)
但是鼠标是点不到组件上面的
求大神们指点啊~~~~~~~~~~~~~!!!!!
1