Programowanie w języku Delphi » FAQ

Jak pozbyć się belki tytułowej Formy

Robimy to za pomocą jednej prostej procedury, którą mamy poniżej:
procedure TForm1.HideTitlebar;
 var
 Li : LongInt;
begin
 if BorderStyle=bsNone then Exit;
  Li:=GetWindowLong(Handle,gwl_Style);
 if (Li and ws_Caption)=ws_Caption then begin
  Case BorderStyle of
   bsSingle,
   bsSizeable : SetWindowLong(Handle,gwl_Style,Li and
   (not(ws_Caption)) or ws_border);
   bsDialog : SetWindowLong(Handle,gwl_Style,Li and
   (not(ws_Caption)) or ds_modalframe or ws_dlgframe);
 end;
  Height:=Height-getSystemMetrics(sm_cyCaption);
  Refresh;
 end;
end; 


Należy zadeklarować procedurę do sekcji private, oraz np. w OnClick'u Buttona lib w OnCreate formy wpisać:
HideTaskbar;
Aby jednak przywrócić tenże pasek piszemy taką procedurę:
procedure TForm1.ShowTitlebar;
 var
  Li : LongInt;
begin
 if BorderStyle=bsNone then Exit;
  Li:=GetWindowLong(Handle,gwl_Style);
 if (Li and ws_Caption)<>ws_Caption then begin
  case BorderStyle of
   bsSingle,
   bsSizeable : SetWindowLong(Handle,gwl_Style,Li or
   ws_Caption or ws_border);
   bsDialog : SetWindowLong(Handle,gwl_Style,Li or
   ws_Caption or ds_modalframe or ws_dlgframe);
  end;
   Height:=Height+getSystemMetrics(sm_cyCaption);
   Refresh;
 end;
end;


I tak samo jak wcześniej - deklarujemy w private procedurke i używamy jej w OnClicku buttona lub OnCreate :)

12 komentarzy

InsertFn 2009-10-15 00:40

niech spróbuje napisać winampa z belką tytułową (?sic)

InsertFn 2009-10-12 19:25

ale tych kretynów w polskim internecie (mam na mysli Yok - tu ki), jak dajesz radę - żle, jak nie dajesz - tez źle, i weź się z takim dogadaj

Snowak 2004-05-28 16:53

ehh.. IY22 czy jakos tak - to usunie ta belke na formie, a nie na pasku zadan, jakbys nie wiedzial, poza tym to jest bardzo przydatny kod. Bardzo mi sie przydal, i nie do trojana, a do programu informujacego o nowej poczcie. Nie czepiajcie sie kubka bo nic zlego nie zrobil! Mam tylko nadzieję, że Boduch tego nie usunie...

I na koniec... - DAJCIE MU SPOKÓJ!

CooBek 2004-05-27 18:23

eh.. juz mowilem - jak masz bsnone to nie mozesz zmieniac rozmiarow formy

iYYa24 2004-05-26 20:08

Lepiej napisać:
FormStyle := bsNone;
:)))

YokTu-Ki 2004-05-25 17:41

1. to widzę że jeśli nie pisze się nic co ma się ukryć w systemie to po kiego takie coś robić ...
2. jak nie potrafisz znaleźć czegoś takiego w necie to nie moja wina ... najlepiej naucz się obsługiwać wyszukiwarki
3. pierw może zobacz co oferuje dany komponent a nie że za jakiś czas dasz tu "wskazówkę" o tym, jak zrobić mruganie belki programu ... też się przydaje zobaczyć czy nie ma czegoś co może ci się przydać ... oszczędzasz czas ...
4. na forum wchodzę ... problem polega na tym że wskazówka to nie forum więc NAUCZ SIĘ TO ROZRÓŻNIAĆ !!
Forum po to jest, żeby tam walić z pytaniami, co do których nie jest się pewnym

Swoją dorogą ... skoro już zauważyłeś że posty na forum się powtarzają to czemu nie poszukałeś tam swojej "wskazówki" ???? swojego czasu było to na forum i to wcale nie tak dawno ...

zresztą jak słusznie zauważył kolega .:.CHZW.:. cytuję "taki sam kod jest na torry
tylko zamiast zmiennej "li" którą ty zastosowałeś jest zmienna "Style"" więc nie mów mi że nie mogłeś znaleźć !!!

I krzyżyk ci na drogę !

Drajwer 2004-05-24 20:55

komponent do trojana ? yokuti [rotfl] zastanow sie

CooBek 2004-05-24 17:22

Ykhm.. po pierwsze.. co ty widzisz w tej wskazówce takiego, iż uważasz, że klasyfikuje się ona do trojanów, wirusów i Bóg wie czego.. po drugie: nie każdy p o t r a f i  znaleść szukany przez niego kod, dlatego powinno się - moim zdaniem - zamieszczac chodzby linki do takich wskazowek lub do stron o podobnej tematyce, by tak zwaną wiedzę o programowaniu poszerzyć chodź trochę o ten mały kod. Po trzecie: nie zawsze komponenty w pełni odpowiadają prezentowanym wskazówkom, częściej jednak są one zapychane dodadkowymi bajerami... :-/
BTW. Jeżeli zatem widzisz jakieś inne aspekty, które miałyby uniemożliwić innym dodawanie nowych porad, artów z jakichś powodów [nie wiem, żałujesz miejsca czy co? ] to zastanów się parę razy, gdyż po to w końcu jest ten serwis, by poszerzać wiedzę a nie odwrotnie. Poza tym, jeżeli chodzi ci o to, ze marnuje miejsce na serwerze 4p - czlowieku, wejdzze ty na forum i sam zobacz ile tam jest postow bez odpowiedzi, postow nie potrzebnych oraz powtarzających się.. Proszę bardzo, gdy zdobędziesz status administratora lub moderatora 4programmers, wtedy mi takie uwagi możesz zwracać, przyjmę je do siebei ze skruchą i będę na każdym kroku uważał, by nie popełnić wiecej tego błędu.. Żegnam.

YokTu-Ki 2004-05-24 15:30

Jezu CooBek !!
to dobrze że dodajesz wskazówki, jednak opamiętaj się trochę ...
Znalezienie tego w necie nie stanowi problemu ...
Toturial o prościutkim trojanie jest do znalezienia niemal wszędzie ... ściągasz i masz ...
proszę nie wrzucaj tu wszystkiego co odkryjesz jeśli dopiero się uczysz (wszyscy się uczymy) a jeśli już musisz to wrzucaj to na jakąś stronę o pisaniu wirusów ...
Ja bynajmniej nie znam programisty który pisząc program chciałby zrobić coś takiego a anwet jeśli to są do tego komponenty i nie trzeba się babrać w kodzie ...
Dziękuję za uwagę ...

Ps. ma to być krytyka kreatywna ... więc skorzystaj ;)

.:.CHZW.:. 2004-05-23 17:48

taki sam kod jest na torry
tylko zamiast zmiennej "li" którą ty zastosowałeś jest zmienna "Style"