Aplikacje zajmujące cały ekran monitora

wojtekrj

            Jeśli tu jesteś to zapewne szukasz odpowiedzi na pytanie: jak stworzyć aplikację zajmującą cały ekran monitora. Na tej stronie prezentuje dwa sposoby rozwiązania tego problemu: Sposób I w którym nie widać paska tytułowego i Sposób II, w którym ten pasek jest widoczny.

Sposób I


            Należy ustawić w Inspektorze Obiektów właściwość formatki BorderStyle na bsNone, a WindowState na wsMaximized. Po uruchomieniu programu formatka zajmuje cały ekran. </p>

Sposób II


            Ten sposób jest bardziej skomplikowany. Na początku trzeba ustawić właściwość formatki FormStyle na fsStayOnTop. Teraz należy ustawić właściwość formatki WindowState na wsMaximized, aby uruchomić formatkę zmaksymalizowaną. Właściwość BroderIcons formatki odpowiada za ikonki wyświetlane na pasku tytułowym. Po jej rozwinięciu radziłbym ustawić właściwość bimaximize na false, aby uniemożliwić użytkownikowi zmaksymalizowanie formatki. Nie wiem jak to się dzieję, ale odkryłem że kiedy uruchamia się formatkę zmaksymalizowaną(czyli z właściwością WindowState ustawioną na wsMaximized) to zajmuję cały ekran, ale jak ją zmaksymalizuje użytkownik to pasek zadań staje sie widoczny. Teraz jeszcze należy ustawić właściwość formatki BorderStyle na bsSingle, aby uzytkownik nie mógł zmienić rozmiarów formatki. Ten sposób ma jednak wady: uzytkownik klikając pasek tytułowy może zmienić pozycję formatki na ekranie. Dlatego proponuje użyc takiego rozwiązania(treść tej procedury pochodzi z programu WinAmpWnd autorstwa pana Adam Boducha, a ja ją zmodyfikowałem na potrzeby tego zagadnienia). W sekcji private w edytorze kodu wpisujemy deklarację następującej procedury:

procedure WndPosChanging(var Msg : TWMWINDOWPOSCHANGING); message WM_WINDOWPOSCHANGING;

Teraz w sekcji implementation piszemy teraz kod tej procedury:

procedure TNazwaFormatki.WndPosChanging(var Msg: TWMWINDOWPOSCHANGING);
begin
  Msg.WindowPos.X := -3;
  Msg.WindowPos.Y := -3;
end;

Tym właściwościom przypisujemy wartość -3, ponieważ gdy te wartości wynoszą 0 to prawa i dolna krawędź formatki zostanie ucięta. </p>

5 komentarzy

Hmmm... po co ten bardziej skomplikowany sposób ? Ten prosty spełnia swoje zadanie jak należy :D

x := 3+3 ... a bardziej skomplikowany to x := 9-5+1+10-4-1-4. Nie wystarczy samo bsNone? Starajmy sie ulatwiac sobie zycie.

a nie lepiej wyłączyć cały pasek BorderStyle na bsNone i wtedy formal niezmieni położenia bo niebędzie paska :D proste.(aplikacja staje sie pełno-ekranowa )

Czcionka kolego mogła by być standardowa :)

Właśnie tego szukałem thx