Podczas zabawy/testów zauważyłem pewne dziwne/nietypowe zachowanie. Aby to zweryfikować, stworzyłem specjalną aplikację testową, której cały kod sprowadzał się do obsługi OnCreate
w następujący sposób:
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.FormStyle:= fsStayOnTop;
Form1.BorderStyle:= bsNone;
Form1.Left:= 0;
Form1.Top:= 0;
Form1.Width:= Screen.Width;
Form1.Height:= Screen.Height;
end;
Jak można się domyślić - powyższy kod ma zmienić ustawienia okienka tak, aby było ono bez obramowania, miało wielkość całego ekranu, a do tego pozostawało zawsze na wierzchu, czyli nawet przy próbie przełączenia się (chociażby przez Alt+Tab) na inną aplikację moja była nadal widoczna.
Teraz dziwne zachowanie, które udało mi się stwierdzić:
- aplikacja skompilowana w Lazarus 2.0 64-bit na Win10: mogę przełączać się na inne aplikacje, ten
fsStayOnTop
jakby nie ma zastosowania - aplikacja skompilowana w Delphi 10.2: działa poprawnie na Win10 oraz WinXP
- aplikacja skompilowana na Lazarus 2.0 32-bit: Win10 oraz WinXP ten sam objaw, pozostawienie okna na wierzchu nie działa.
Czy macie jakieś pomysły, o co tu chodzi? Podejrzewam, że to jakaś głupota, ale czasami człowiek tak ma, że się zafiksuje na jakiś tok myślenia i cięzko z niego wyskoczyć/spojrzeć na sprawę pod innym kątem ;)