AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung FMX - Borderstyle := None - Snap-Funktion von Windows

FMX - Borderstyle := None - Snap-Funktion von Windows

Ein Thema von sintronic86 · begonnen am 27. Jan 2022 · letzter Beitrag vom 27. Jan 2022
Antwort Antwort
sintronic86

Registriert seit: 7. Dez 2009
Ort: Barsinghausen
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

FMX - Borderstyle := None - Snap-Funktion von Windows

  Alt 27. Jan 2022, 09:31
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:
procedure TformMain.Rectangle1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin
  if (Button = TMouseButton.mbLeft) then StartWindowDrag;
end;
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!

Hat jemand von euch eine Idee, wie dass trotzdem funktioniert, bzw. eine bessere Möglichkeit, Fenster trotz
Code:
Borderstyle := None
verschieben zu können?


Ich danke bereits im Vorraus!
Gruß Björn
Björn
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.575 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: FMX - Borderstyle := None - Snap-Funktion von Windows

  Alt 27. Jan 2022, 10:02
Automatisches Snap ist Border-abhängig soweit ich weiß. Kein Border kein Snap.
Diese Funktionalität musst Du wohl selbst einbauen bei Borderless Window.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
sintronic86

Registriert seit: 7. Dez 2009
Ort: Barsinghausen
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: FMX - Borderstyle := None - Snap-Funktion von Windows

  Alt 27. Jan 2022, 10:11
@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?
Björn
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.575 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: FMX - Borderstyle := None - Snap-Funktion von Windows

  Alt 27. Jan 2022, 10:32
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.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
sintronic86

Registriert seit: 7. Dez 2009
Ort: Barsinghausen
90 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: FMX - Borderstyle := None - Snap-Funktion von Windows

  Alt 27. Jan 2022, 12:00
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!
Björn
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#6

AW: FMX - Borderstyle := None - Snap-Funktion von Windows

  Alt 27. Jan 2022, 12:09
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!
Falls es dir nur um das Snap geht schau dir das Video an.
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:
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!
Das tut sie jedoch nicht auch wenn es ohne Probleme nachbaubar wäre..
Sie dockt das Window nur an das Fenster mit angegebener Snapweite an.

Geändert von venice2 (27. Jan 2022 um 12:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.575 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: FMX - Borderstyle := None - Snap-Funktion von Windows

  Alt 27. Jan 2022, 13:30
Funktioniert dein "Magnet" auch mit FMX?

Wobei snapping ja mehr ist, zieh es die obere Bildschirmgrenze = maximize
Rechte Grenze = halber Bildschirm etc...
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#8

AW: FMX - Borderstyle := None - Snap-Funktion von Windows

  Alt 27. Jan 2022, 13:48
Funktioniert dein "Magnet" auch mit FMX?

Wobei snapping ja mehr ist, zieh es die obere Bildschirmgrenze = maximize
Rechte Grenze = halber Bildschirm etc...
Siehe
Zitat:
Das tut sie jedoch nicht auch wenn es ohne Probleme nachbaubar wäre..
Auch bei FMX ist ein Fenster ein Fenster oder?

Aber Ja habe mich damit noch nicht groß befaßt.
Verwende lieber direkt OpenGL und DirectDraw etc.

Geändert von venice2 (27. Jan 2022 um 13:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
8.565 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: FMX - Borderstyle := None - Snap-Funktion von Windows

  Alt 27. Jan 2022, 15:54
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf