如何获取鼠标位置下的控件名?(100分)

  • 主题发起人 主题发起人 bihai
  • 开始时间 开始时间
B

bihai

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,已经有文章可以获知鼠标位置下的控件的类名及句柄了,但是控件名的获取却未提及,
先进们不妨指点一二!
 
名字么?一个虚名而已,不知的来有何贵干?
 
FindControl(Handle: HWnd): TWinControl;
.name
 
To:yanlei
你的答案已经搞定了一半的问题了,如果这个控件是TGraphicControl类的呢?如何得到?
 
不知道是否满足你的要求. :-))).
procedure TForm1.Timer1Timer(Sender: TObject);
var
I: Integer;
tempControl : TControl;
pt,pt2 : TPoint;
rect : TRect;
begin
GetCursorPos(pt);
for I := ComponentCount - 1 downto 0 do
begin
if (Components is TControl) then
begin
tempControl := TControl(Components);
rect := tempControl.BoundsRect ;
pt2 := (tempControl.Parent).ScreenToClient(pt);
if PtInRect(rect,pt2) then showmessage(tempControl.name);
end;
end;
end;
 
To:peng_qs
这个还不行,你可以做个例子,如果这个控件下还有其它的父类,比如
image在panel上,而且panel的面积比image大,那么,它不会得到image的名称了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部