![]() |
Anwendung mit VCL-Style "steht über" wenn Fenster maximiert
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!
Mir ist gerade aufgefallen, dass Fenster die mit einem VCL-Style angezeigt werden, etwas "überstehen" wenn sie maximiert werden. Das Bild unten zeigt einen Ausschnitt vom sekundären Bildschirm. Im Hintergrund sieht man den Windows-Explorer. Der grüne Rand links ist eigentlich ein Stück vom MainForm, das mit dem Metropolis UI Green Style versehen ist und auf dem primären Bildschirm maximiert wurde. Im Bitmap-Stil-Designer scheint deswegen sogar etwas "getrickst" worden zu sein: Unter Objects->Form->Image->LeftBorder, RightBorder, BottomBorder sind "Abstandhalter" gesetzt, die genau die Breite haben die bei maximierten Fenstern "übersteht". Ansonsten würden wohl Scrollbars vom Bildschirm verschwinden? Grüße Cody |
AW: Anwendung mit VCL-Style "steht über" wenn Fenster maximiert
Das kannte ich von Windows 7 auch von (allen) anderen Anwendungen. Fenster auf Monitor 1 maximiert -> auf Monitor 2 werden Pixel dessen Rahmens sichtbar.
|
AW: Anwendung mit VCL-Style "steht über" wenn Fenster maximiert
Ist ein Windows 10 und da ist mir das bisher noch bei keiner einzigen Anwendung aufgefallen. Für gewöhnlich verwende ich gar keine VCL-Styles sondern nur Windows-native. Daher hats mich bisher nicht betroffen. Aber jetzt solls mal eine Anwendung mit Custom Style sein.
Ein Excel 2016 verwendet ja auch so eine Art Custom Style, wenn auch natürlich nicht VCL-basiert. Da habe ich diesen "Überstand" nicht. |
AW: Anwendung mit VCL-Style "steht über" wenn Fenster maximiert
Ich denke, dass das mit dem Schattensystem zu tun hat.
Windows macht die Fenster offenbar größer als sie eigentlich sein sollen und lässt einen transparenten Rand um das eigentlich gezeichnete Fenster. Dort wird dann ggf. der Schatten gezeichnet. Daher sind die Anfasser für die Fenstergrößenänderungen auch unter und neben dem sichtbaren Fenster. Ein Custom Style zeichnet den Inhalt möglicherweise in die gesamte verfügbare Fläche, ohne zu beachten, dass dort noch ein transparenter Rand berücksichtigt werden muss. Das finde ich eine denkbar schlecht Lösung. Aber ich kann mir schwer vorstellen, dass MS daran nochmal etwas ändern kann, da eine solche Änderung sich auf laufende Programme auswirken könnte. |
AW: Anwendung mit VCL-Style "steht über" wenn Fenster maximiert
Ich hatte gleiches Phänomen/Problem das ein paar meiner Anwendungen nun sichtbar einen transparenten Rand besaßen, ich musste auf CS_DROPSHADOW verzichten damit alles wieder normal Dargestellt wird.
|
AW: Anwendung mit VCL-Style "steht über" wenn Fenster maximiert
Wenn der VCL-Style Titelleiste und Rahmen selber malt, dann ist "real" das Fenster größer.
Bei sowas pfuschen einige Styles und malen den Ramen auch dann, wenn er eigentlich nicht vorhanden ist und somit steht er auch über, wenn er stattdessen nur das Fenster vergrößert. Windows läßt "inzwischen" halt seinen eigenen Rahmen weg und steht dann nicht über, aber nur wenn das Fenster "wirklich" maximiert ist und nicht nur zufällig der Clientbereich die Größe des Monitors hat. |
AW: Anwendung mit VCL-Style "steht über" wenn Fenster maximiert
An der Schattensache könnte was dran sein. Kein einziger der VCL-Styles zeichnet einen Schatten um das Fenster. Die Metro-Styles wirken regelrecht platt. Erst recht wenn zwei gleichfarbige Fenster übereinander liegen. Jetzt ist die Frage, kann man da an den Styles was nachjustieren mit dem Editor oder gibt es evtl. Runtimeseitig Workarounds?
|
AW: Anwendung mit VCL-Style "steht über" wenn Fenster maximiert
Diesen Effekt kenne ich aber auch schon von meinen mit Delphi 7 geschriebenen Programmen unter Windows XP.
Einfache "billige" VCL-Anwendungen maximieren und man hat ein bisserl vom Rand auf dem zweiten Bildschirm. Bei Software, die nicht mit Delphi geschrieben wurde, ist mir das bisher noch nicht aufgefallen. |
AW: Anwendung mit VCL-Style "steht über" wenn Fenster maximiert
[OT?]
Zitat:
[/OT?] |
AW: Anwendung mit VCL-Style "steht über" wenn Fenster maximiert
Hab' mir nie die Mühe gemacht danach zu suchen.
Das fiel eh nur auf, wenn der zweite Bildschirm ansonsten leer war oder die dort laufenden Programm ca. 3 bis 10 Pixel (oder so) vom linken Rand entfernt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 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