如何取得某控件的坐标
比如我在一个scrollbox里画了一个image框,当鼠标点中这个image框的时候我取得的image.left和image.top都是相对scrollbox的坐标。可不可以取得这个image框在整个screen上的坐标呢?
在线等高手出现。
问题点数:20、回复次数:4Top
1 楼weizi2000(秋风啊)回复于 2004-09-01 15:54:34 得分 20
var
p: TPoint;
begin
p.X := image.left;
p.Y := image.top;
p := ClientToScreen(p);
ShowMessage(IntToStr(p.X));
end;Top
2 楼wofan(我烦)回复于 2004-09-01 16:56:29 得分 0
来晚鸟,同上
left top
Top
3 楼shitianj(仲)回复于 2004-09-01 17:01:32 得分 0
我有一个笨方法就是你看你这个控件(scrollbox)外还有什么控件再加上窗体的位置就可以算出当前控件的位置了,方法没有上边那位老兄的高明,不过小弟还是曾经用这个解决的问题呢~~
原码如下:
if edit.Left +vpanel.Width+20>vpanel.Parent.Width then
begin
Vpanel.Left:=edit.Left-(Vpanel.Width-edit.Width);
end
else
begin
Vpanel.Left :=edit.Left;
end;
Vpanel.Top :=edit.Top +edit.Height +2;
Vpanel.Visible:=true;
Top
4 楼ratlittle(小老鼠)回复于 2004-12-10 12:37:06 得分 0
看了weizi2000(秋风啊-秋的叹息) shitianj(仲) 两位的方法,解决了我的问题,特此表示感谢!
var
pos:TPoint;
begin
SelectGroup:=TSelectGroup.Create(nil);
pos.X:= selectgroup_bt.left;
pos.Y:= selectgroup_bt.top;
pos:= ClientToScreen(pos);
SelectGroup.Left:=pos.X+5;
SelectGroup.Top:=pos.Y+SelectGroup_bt.Height+4;
SelectGroup.ShowModal;
SelectGroup.FreeOnRelease;
end;
点击按钮处弹出一个窗体Top




