一个动态生成按钮坐标位置的小问题(50分)

  • 主题发起人 主题发起人 masm
  • 开始时间 开始时间
M

masm

Unregistered / Unconfirmed
GUEST, unregistred user!
1、创建一个scrollbox,放置一个Image1,大小为1000*1000,拖动滚动条,整个Image1
都可以浏览到,一切正常。
2、在Image1中创建热点区域(通过鼠标移动事件中的坐标判断),点击鼠标事件中加入
如下代码:
如果是在热点区域内点击:
Button1:=TButton.Create(Image1);
With Button1 do
Begin
left:=100;
Top:=100;
parent:=Image1.parent;
...
End;
这样,点击Image1上的任何热点,都会在Image1的坐标(100,100)上出现一个按钮,
这是问题出现了,拖动滚动条,把(100,100)坐标移出当前屏幕,点击热点,居然在屏
幕上也出现了按钮!!!!观察其坐标,原来是以当前左上角为(0,0)的“新坐标系”,
ScrollBox的滚动条令坐标系不固定?令我大为不解!!如何解决这个问题呢?帮帮我啊!
 
Button1:=TButton.Create(scrollbox1);
这样不就可以了么?
 
不行啊!
如果你在FormCreat事件中用循环变量定义多个按钮,那么所有按钮的位置坐标都是正确的!
另外,我又作了一个试验,在界面设计中我把垂直滚动条拉到底,再编译,运行后,
所有按钮的位置都是以当前屏幕左上角为(0,0)位基准的坐标系,向上拖动滚动条,
ScrollBox1的上部分全部空白!看来ScrollBox的滚动条的位置对其内部的坐标系有很大的
影响啊!怎么办???
 
这么多号称“高手”的人,没有一个懂一点的?
 
Button1:=TButton.Create(Image1);
With Button1 do
Begin
left:=100;
Top:=100;
//parent:=Image1.parent;
//parent:=Image1;
...
End;
试试

 
写错了应为:
:=TButton.Create(Image1);
With Button1 do
Begin
left:=100;
Top:=100;
//parent:=Image1.parent;
parent:=Image1;
...
End;
 
parent:=Image1;
这一局明显的语法错误!
 
后退
顶部