[Delphi] Czy okno aplikacji jest na wierzchu

0

Jak sprawdzić czy okno aplikacji aktualnie jest na wierzchu
czy jest zasłonięte innymi oknami?

0

na pierwszy rzut oka - GetForegroundWindow() i porównanie z uchwytem Twojego okna. albo onActivate/onDeactivate formy. jednak to tylko załatwi sprawdzenie, czy okno jest aktywne, nie czy jest zasłonięte. wątpię, żeby był jakiś w miarę prosty sposób na szybkie sprawdzenie, czy okno jest widoczne w całości. możesz porównać piksel po pikselu Twoje okno z pamięcią ekranu (obiekt screen), jednak jest to fatalna metoda - bo powolna.

0

Ale jeśli okno zostanie przykryte/zasłonięte, to czy nie zadziała onDeactive ?

0

owszem - ale zadziała również, kiedy okno tylko straci focus. i nie zadziała, kiedy już bez przywracania focusa zostanie zasłonięte albo odsłonięte.

0

Sprawdzam otrzymane wskazówki.
Okazuje się że TForm.OnDeactivate Event zachodzi, gdy przechodzimy z jednej do drugiej formy w ramach jednej aplikacji.
Aby sprawdzić czy inna aplikacja stała się aktywna (po czym np. przesłoniła moje okno) należy zastosować TApplication.OnDeactivate Event.
Nie wiem jednak jak to ugryźć. Może macie panowie jakieś wskazówki...
Jak wykorzystać TApplication.OnDeactivate Event?

0

Już znalazłem...
Zastosowałem komponent TApplicationEvents

1 użytkowników online, w tym zalogowanych: 0, gości: 1