マウス位置のコントロールを調べる

FindDragTarget関数 を使うとある位置のコントロールを調べることができます。本来はドラッグ&ドロップを使う場合に使用する関数のようです。以下のサンプルはマウス位置のコントロールを調べ、その名前をリストボックスに追加していきます。また FindVCLWindow関数でも実現可能です。

■ マウス位置のコントロールを調べる例 (FindDragTarget関数)
procedure TForm1.Timer1Timer(Sender: TObject);
var
   cmpFind  :  TComponent;
   pntXY    :  TPoint;
begin
   GetCursorPos(pntXY);
   cmpFind        :=   FindDragTarget(pntXY,true);       
   if   cmpFind   <>   nil  then  
   begin
       ListBox1.Items.Add(cmpFind.Name);
   end;
end;

■ マウス位置のコントロールを調べる例 (FindVCLWindow関数)
procedure TForm1.Timer2Timer(Sender: TObject);           
var
   cmpFind  :  TWinControl;
   pntXY    :  TPoint;
begin
   GetCursorPos(pntXY);
   cmpFind       :=   FindVCLWindow(pntXY);
   if   cmpFind   <>  nil  then
   begin
       ListBox1.Items.Add(cmpFind.Name);
   end;
end;