Jak przenieść formularz bez obramowania? Próbowałem szukać w Internecie, ale nic. Wielkie dzięki.Przenoszenie formularza bez stylu obramowania
Odpowiedz
Możesz przeciągnąć formularz za pomocą dowolnej kontrolki, w tym samej siebie.
Korzystając z poniższego przykładu, możesz przenieść formularz, klikając jego płótno i przeciągając. Możesz zrobić to samo z panelem w formularzu, umieszczając ten sam kod w zdarzeniu MouseDown panelu, co pozwoli ci stworzyć własny pasek pseudopisów.
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DRAGMOVE = $F012;
begin
if Button = mbLeft then
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
end;
end;
Dzięki, ten kod jest lepszy! –
Jeśli chodzi o przeciągnięcie okna za pomocą myszy, można zastąpić obsługę wiadomości WM_NCHITTEST
i zwrócić dla regionu przeciągania wartość HTCAPTION
. Poniższe okno przeciągnie okno w górnej 30 pikseli dla insance:
type
TForm1 = class(TForm)
private
protected
procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
end;
..
procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
var
Pt: TPoint;
begin
Pt := ScreenToClient(SmallPointToPoint(Message.Pos));
if Pt.Y < 30 then
Message.Result := HTCAPTION
else
inherited;
end;
+1 to jest sposób, aby to zrobić. –
@ David: Ostatnio byłem trochę sceptycznie nastawiony do tego podejścia, ponieważ, zasadniczo, mówisz OS, że * cała forma jest podpisem okna *, co może nie być być semantycznie prawdziwe. (Cóż, w kodzie Sertaca prawdopodobnie pierwsze 30 pikseli * jest * w rzeczywistości podpisem, ale generalnie może to nie być prawdą.) –
@andreas Czy masz jakiś konkretny powód, aby to odrzucić? Jakie są wady? Jest to standardowe podejście. –
- 1. Przenoszenie formularza na określony ekran
- 2. Czy można utworzyć główne okno aplikacji bez obramowania w systemie Windows, bez stylu WS_POPUP?
- 3. Jak zmienić kolor obramowania formularza C#?
- 4. Przenoszenie Konstruktora bez wskaźników
- 5. IOS 7: Usuwanie obramowania z sekcji zgrupowanego stylu UITableView
- 6. Niestandardowa zmiana rozmiaru uchwytu w formie bez obramowania C#
- 7. C# Application.Run bez formularza
- 8. Formant ActiveX bez formularza
- 9. Przeniesienie okna bez obramowania w wpf
- 10. WPF Zmiana rozmiaru okna bez obramowania
- 11. wątki fabularne bez obramowania iz białym tłem
- 12. UIBarButtonItem z niestandardowym obrazem i bez obramowania
- 13. Przenoszenie wierszy do kolumn bez agregatu
- 14. Wysyłanie danych POST bez formularza
- 15. Jak pobrać plik bez formularza
- 16. Wyłączyć pole tekstowe bez zmiany stylu?
- 17. NSDate w pełnym stylu, ale bez roku
- 18. Kolor obramowania CSS3
- 19. Bez możliwości zmiany rozmiaru obramowania okna i pozycjonowania
- 20. Przycisk bez obramowania na pre-Lollipop z biblioteką pomocniczą
- 21. PyQt Nieregularnie ukształtowane okna (na przykład Okrągły bez obramowania/dekoracji)
- 22. Zmień wejściowego kolor obramowania tekstu bez zmiany jego wysokości
- 23. Okno bez obramowania. Jak dodać cień i usunąć obramowanie 1px?
- 24. Uzyskiwanie wartości opcji bez przesyłania formularza
- 25. Czysta JavaScript wysyłać dane pocztowe bez formularza
- 26. Wysyłanie formularza HTTP bez użycia 'Invoke-WebRequest'
- 27. Otwieranie formularza w języku C# bez ogniskowania
- 28. AJAX: Złożenie formularza bez odświeżania strony
- 29. Wywołaj wtyczkę JQuery Validate bez przesyłania formularza
- 30. Zamknięcie powiązanego formularza bez zapisywania zmian
mogą tu być: http://delphi.about.com/od/windowsshellapi/a/dragnocaption.htm – philnext
Duplikat [C++ Builder: Tworzenie TForm z BorderStyle bsNone że jest jednak ruchoma i skalowalny ] (http://stackoverflow.com/questions/7178030/cbuilder-create-a-formforma-z-borderstyle-bsnone-to-is-nevious-movable) - ten kod jest dla C++ Builder, ale wciąż jest ten sam VCL! Przejście na Delphi powinno być trywialne. –