控件可移动

奔雷手 2012-07-01 01:49:40
1,控件 可移动(如BUTTON在EXE 可以自由移动),这个找到方法了;
2,页面比如划分成均分成左右两边,怎样做到移动左边的一个控件 自动 与 靠近右边框,也就是说 移动到 指定位置?
...全文
200 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
奔雷手 2012-07-09
  • 打赏
  • 举报
回复
解决 了。 容器 是不行的(容器之间 控件是不能移动的)。
只能用图片类。设置好每个图片的位置,根据控件到达的坐标来判断是否在图片里,然后就计算出区域。
ynquan 2012-07-04
  • 打赏
  • 举报
回复
FORM 里 设定 多个区域,我是想把他分成多个容器来处理(即一个区域对应一个容器)。

其实多个区域也是多个容器。一个容器里面放空间的话这个控件不可能移到另一个容器里面。
所以只要控件的MouseDown,MouseMove,MouseUp等事件里面得到坐标(Top,Left)后再把坐标设置就可以了。
有需要的话坐标保存后下次再打开程序时读入也可以。
广州佬 2012-07-02
  • 打赏
  • 举报
回复
设置一个数组,它为记录(Record,有人叫它为结构)类型,用来关联每个图片(如扑克),记录中的成员有:目前的位置、可移动的方向、是否已经发牌、是否已经出牌等等。
如果不怕烦,可以弄多个线程来专门侍候图片移动效果,当要移动时启动线程,并将移动方向、位置传递给线程,线程当图片移动到位时向窗体发送消息并将自己挂起、等待下一次启动。窗体收到消息时,设置相应的记录,并指示玩家下一个动作的提示。
奔雷手 2012-07-01
  • 打赏
  • 举报
回复
FORM 里 设定 多个区域,我是想把他分成多个容器来处理(即一个区域对应一个容器)。
[Quote=引用 6 楼 的回复:]

如果在同一容器内移动,那简单;只要用到MouseDown,MouseMove,MouseUp等事件,计算他们的坐标差后设置Top,Left就可以了

若不同容器要用到Drag相关事件
[/Quote]

求思路
kaikai_kk 2012-07-01
  • 打赏
  • 举报
回复
如果在同一容器内移动,那简单;只要用到MouseDown,MouseMove,MouseUp等事件,计算他们的坐标差后设置Top,Left就可以了

若不同容器要用到Drag相关事件
奔雷手 2012-07-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

点击事件仅令定时器开始计时,移动过程可以考虑用定时器来改变它的坐标,并判断位置是否到达,是则令定时器停止。
[/Quote]

嗯 是一个思路。
但是我目前的需求有点不同。
FORM上有多个区域(目前假定 区域数 是固定的),需要有的控件左移,有的右移,有的上移,有的下移。
问题分解成:
1,如何判断控件移动的方向;
2,如何判断控件移出了某个容器到达另一个容器(比如说PANEL1,PANEL2,PANLE1里有个BUTTON1,把BUTTON1移动到PANEL12的边界的时候即发出消息之类的信息,这个信息如何发出,如何获得)
广州佬 2012-07-01
  • 打赏
  • 举报
回复
点击事件仅令定时器开始计时,移动过程可以考虑用定时器来改变它的坐标,并判断位置是否到达,是则令定时器停止。
奔雷手 2012-07-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

词不达意!

是否想用 TSplitter ?
[/Quote]
。。不是分割线 这样的。
控件在 EXE中 移动 就像设计期 那样。
现在问题是 自动移动到某个区域。
就比如 QQ斗地主中,我把我手中的牌 右击 就 自动跑到 游戏屏幕正中间,而不是别的地方
广州佬 2012-07-01
  • 打赏
  • 举报
回复
哦,那就在图片的点击事件写代码,令图片的坐标分几次向目标位置改变即可。
广州佬 2012-07-01
  • 打赏
  • 举报
回复
词不达意!

是否想用 TSplitter ?

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧