![]() |
FMX - Borderstyle := None - Snap-Funktion von Windows
Hallo Delphi-Gemeinde,
nach langer Zeit ohne Fragen, ist gerade wieder eine aufgetaucht. Ich habe eine Beispielanwendung erstellt (FMX). Den Borderstyle der Form habe ich auf None gesetzt. Verschieben des Fensters funktioniert einwandfrei über
Code:
Allerdings funktioniert damit die Snap-Funktion von Windows (Fenster mit der Maus an den Bildschirmrand ziehen, und dieses dockt dann automatisch auf halbe Bildschrimgröße an) nicht!
procedure TformMain.Rectangle1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin if (Button = TMouseButton.mbLeft) then StartWindowDrag; end; Hat jemand von euch eine Idee, wie dass trotzdem funktioniert, bzw. eine bessere Möglichkeit, Fenster trotz
Code:
verschieben zu können?
Borderstyle := None
Ich danke bereits im Vorraus! Gruß Björn |
AW: FMX - Borderstyle := None - Snap-Funktion von Windows
Automatisches Snap ist Border-abhängig soweit ich weiß. Kein Border kein Snap.
Diese Funktionalität musst Du wohl selbst einbauen bei Borderless Window. |
AW: FMX - Borderstyle := None - Snap-Funktion von Windows
@KodeZwerg
Das wäre ziemlich schade. Letztendlich habe ich den Border nur entfernt, weil ich so weit mehr mit der Fensteroptik spielen kann, ohne die windowseigene Titelleiste etc. verwenden zu müssen. Hättest du denn für eben diesen Optik-Fall eine andere Lösung, die die Snap-Funktion mit unterstützt? |
AW: FMX - Borderstyle := None - Snap-Funktion von Windows
Das einfachste wäre wohl, in deinem Drag Event den Border zu aktivieren solange man die Maus drückt und dann wieder zu deaktivieren. Es würde merkwürdig aussehen aber die Funktionalität wäre gegeben.
Zweite Variante halt alles selber nachprogrammieren was bei Snap so passiert. Prüfen ob eine Seite des Formulars den Rand berührt um dann die Form-Size zu setzen etc... es ist mühsam aber möglich. |
AW: FMX - Borderstyle := None - Snap-Funktion von Windows
Leider bekommt er das zwischen MouseDown und MouseUp nicht hin, den Borderstyle zu ändern!
Selber bauen wäre zwar machbar, aber damit sind ja die "schönen" Windows-Effekte leider nicht mehr da. P.S.: Ich nutze Windows 11! |
AW: FMX - Borderstyle := None - Snap-Funktion von Windows
Zitat:
![]() Wenn es dir zusagt kann ich dir einen Link zu meiner Magnetic unit mit Beispiel schicken. Dies arbeitet aber nur zuverlässig mit Popup Windows (Borderstyle := None) weil ich die Schatten der Fenster nicht mit berücksichtige. Zitat:
Sie dockt das Window nur an das Fenster mit angegebener Snapweite an. |
AW: FMX - Borderstyle := None - Snap-Funktion von Windows
Funktioniert dein "Magnet" auch mit FMX?
Wobei snapping ja mehr ist, zieh es die obere Bildschirmgrenze = maximize Rechte Grenze = halber Bildschirm etc... |
AW: FMX - Borderstyle := None - Snap-Funktion von Windows
Zitat:
Zitat:
Aber Ja habe mich damit noch nicht groß befaßt. Verwende lieber direkt OpenGL und DirectDraw etc. |
AW: FMX - Borderstyle := None - Snap-Funktion von Windows
Aber selbst wenn das klappt, würde immer noch z.B. die Hover-Auswahl über dem Maximieren-Button fehlen.
Ich habe früher selbst mit eigenen Fensterrändern usw. experimentiert, aber solche Programme fühlen sich heute eher (wie früher Java-Programme) als Fremdkörper an. Heutige Java-Programme sehen unter Windows ja ganz normal aus. Bei den Möglichkeiten, die es heute gibt, halte ich nicht viel davon den Aufwand in eigene Lösungen für solche Anpassungen zu stecken. Woran ich früher wochenlang getüftelt habe, kann ich heute mit ein paar Klicks und nur wenig Quelltext einfach einstellen... Und solche Programme fügen sich nahtlos in Windows ein. Schade ist, dass die FMX-Styles (zumindest die, die ich ausprobiert habe) die Titelleiste nicht mit stylen. Das klappt bei den VCL-Styles sehr gut und man kann das AFAIK auch für FMX speichern und dann dort laden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz