2010-08-25 49 views
0

我需要知道(移动)窗体是否悬停在组件上(可能是没有鼠标的MouseEnter和MouseLeave)。如何知道表单是否在组件上悬停?

我有这个想法获得组件的左,顶部,高度,宽度和计算(移动)窗体的位置是否在窗体的位置。 (我不完全确定我能做到这一点)

有关实施我的想法的任何建议吗?有没有其他办法可以做到这一点?

+1

你*假设*的“显示窗口内容的同时拖动”选项设置? – 2010-08-25 07:05:19

+0

@Rob:对不起,我不知道那是什么。 (我尝试了谷歌搜索这个,但结果是各种“显示窗口”的问题) – Dian 2010-08-25 07:22:45

+0

把引号放在它周围并再次搜索。或者浏览“显示属性”控制面板(在“效果”下)。 – 2010-08-25 07:25:29

回答

5

尝试这样:

var 
    P: TPoint; 
    R1, R2, I: TRect; 
begin 
    P := TheComponent.ClientOrigin; 
    R1 := TheComponent.ClientRect; 
    Windows.OffsetRect(R1, P.X, P.Y); 
    P := TheForm.ClientOrigin; 
    R2 := TheForm.ClientRect; 
    Windows.OffsetRect(R2, P.X, P.Y); 
    if Windows.IntersectRect(I, R1, R2) then 
    // the Form is over the component 
    else 
    // the Form is not over the component 
end; 
+0

Oooh。谢谢!我很感激。 – Dian 2010-08-25 07:19:37