BorderStyle formy ustawiłem na bsNone
TransparentColor ustawiłem na True i na kolor domyślny Formy, czyli clBtnFace.
Jeżeli usuniesz obramowanie formularza oraz jego całe tło, to nie możesz jej "złapać i przesunąć" w standardowy sposób; Możesz kombinować z wysyłaniem komunikatów, ale nie wiem czy to będzie dobre rozwiązanie, bo w którym momencie chcesz ją przesunąć i czym? Klawiszem? Myszą? Napisz coś więcej i zrób zrzut ekranu z uruchomionym programem;
Polecam stworzenie jakiegoś małego obrazka, za który można by złapać i przesunąć formularz; Do tego celu wystarczy ReleaseCapture
i komunikat WM_NCLBUTTONDOWN
, a jako wParam
podać typ akcji; Przykładowa funkcja (trzeba ją umieścić w zdarzeniu OnMouseDown
kontrolki obrazu):
procedure MoveForm();
begin
ReleaseCapture();
SendMessage(Form.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
end;
Po wciśnięciu LPM i ruszaniu myszą formularz zostanie przesuwany; Dokładnie ten sam komunikat możesz wykorzystać do rozciągania formularza, tyle że jako wParam
musisz podać jedną z poniższych wartości:
Wartość |
Opis |
HTTOP |
rozciąganie w górę |
HTBOTTOM |
rozciąganie w dół |
HTLEFT |
rozciąganie w lewo |
HTRIGHT |
rozciąganie w prawo |
HTTOPLEFT |
rozciąganie w lewo i górę |
HTTOPRIGHT |
rozciąganie w prawo i górę |
HTBOTTOMLEFT |
rozciąganie w lewo i dół |
HTBOTTOMRIGHT |
rozciąganie w prawo i dół |
dzięki temu będziesz mógł dowolnie rozciągać i przesuwać formularz; |
|
Jeśli zaś nie interesuje Cię dodanie małego obrazka jako uchwytu, za który możesz przesuwać formularz, to wywołaj procedurę MoveForm
(jej kod podałem wyżej) w zdarzenia OnMouseDown
każdej kontrolki na formularzu, dzięki temu "łapiąc" za dowolną kontrolkę (o ile posiada zdarzenie OnMouseDown
) będziesz mógł przesuwać całą formą; Ten sposób wykluczy dodanie obrazów-uchwytów, jednak możesz mieć przez to problem z przyciskami (i być może innymi kontrolkami, które obsługuje się myszą);
Ja osobiście polecam utworzenie takiego obrazu-uchwytu, za który można łapać i przesuwać formularz, albo pokazywanie formularza po wciśnięciu danego klawisza, a po jego zwolnieniu ponowne ukrycie tła formularza; Zrób jak uwarzasz.