Как узнать, находится ли форма над компонентом? - PullRequest
0 голосов
/ 25 августа 2010

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

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

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

1 Ответ

5 голосов
/ 25 августа 2010

Попробуйте что-то вроде этого:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...