2010-08-25 3 views
0

Мне нужно знать, что (движущаяся) форма витает над компонентом (может быть, что-то вроде MouseEnter и MouseLeave без мыши).Как узнать, витает ли форма над компонентом?

У меня есть идея получить Left, Top, Height, Width компонента и вычислять, если позиция (движущейся) формы находится в позиции формы. (Я не совсем уверен, как я могу это сделать)

Любые предложения по реализации моей идеи? Есть ли другой способ, которым я могу это сделать?

+1

Вы * * при условии, что «содержимое окна при перетаскивании» опция? –

+0

@ Rob: Извините, я не знаю, что это. (Я пробовал поиск по Google, но результаты - это все виды проблем «show window ..») – Dian

+0

Поместите кавычки вокруг него и повторите поиск. Или изучите панель управления «Свойства экрана» (в разделе «Эффекты»). –

ответ

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

Смежные вопросы