Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Anwendung mit VCL-Style "steht über" wenn Fenster maximiert (https://www.delphipraxis.net/195629-anwendung-mit-vcl-style-steht-ueber-wenn-fenster-maximiert.html)

Codehunter 14. Mär 2018 13:11

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

Daniel 14. Mär 2018 13:18

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.

Codehunter 14. Mär 2018 13:24

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.

stahli 14. Mär 2018 14:08

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.

KodeZwerg 14. Mär 2018 14:12

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.

himitsu 14. Mär 2018 14:17

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.

Codehunter 14. Mär 2018 16:42

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?

Delphi.Narium 14. Mär 2018 17:26

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.

KodeZwerg 14. Mär 2018 19:03

AW: Anwendung mit VCL-Style "steht über" wenn Fenster maximiert
 
[OT?]
Zitat:

Zitat von Delphi.Narium (Beitrag 1396146)
Einfache "billige" VCL-Anwendungen maximieren und man hat ein bisserl vom Rand auf dem zweiten Bildschirm.

Gab es damals eine Lösung für Delphi?
[/OT?]

Delphi.Narium 14. Mär 2018 19:55

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 08:39 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz