不知道是否满足你的要求. )).
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;