Delphi-PRAXiS
Seite 1 von 3  1 23      

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/)
-   -   MainMenu seit 10.3 größer (https://www.delphipraxis.net/198714-mainmenu-seit-10-3-groesser.html)

DieDolly 25. Nov 2018 18:47


MainMenu seit 10.3 größer
 
Liste der Anhänge anzeigen (Anzahl: 2)
Seit 10.3 sind meine MainMenu-Einträge viel größer als zuvor mit 10.2. Vorher waren die Knöpfe der obersten Etage (Datei, ... Hilfe) nur so groß wie die Schrift.
Seit 10.3 aber haben die Knöpfe rechts alle ein Padding von etwa 20px.

Bekommt man das irgendwie weg? OwnerDraw hab ich auf True und muss leider auch so sein. Aber ich verändere nirgendwo die Größe.

Fakten:
Bild 1 OwnerDraw True.
Bild 2 OwnerDraw False (Standard). Wenn False, dann ist der Hover-Effekt aber nicht wie er sein sollte.
Main MainMenu ist mit einer ImageList verknüpft. Setze ich ImageIndex von Datei auf irgendwas außer -1, wird der Knopf im modernen Stil und ohne Padding dargestellt.
Lasse ich die ImageList komplett weg, ist alles richtig.

Fakten 2, wie man das Problem temporär beseitigt
- das Property ImageList des MainMenu muss leer bleiben
- das Property SubImages der Haupt-Knöpfe des Menus bekommt jeweils die ImageList
- Problem erst einmal beseitigt.

Uwe Raabe 26. Nov 2018 06:47

AW: MainMenu seit 10.3 größer
 
Nur ein Hinweis: Delphi behandelt ein Menü mit ImageList intern wie ein OwnerDraw Menü.

DieDolly 26. Nov 2018 10:53

AW: MainMenu seit 10.3 größer
 
Weißt du, warum das beim Zuweisen von SubImages anders ist?
Dieses Verhalten war bei 10.2 noch nicht so. Entweder war es vorher falsch und ich habe davon profitiert und jetzt ist es richtig und ich spüre die Nebenwirkungen von damals oder, ich weiß nicht.

Uwe Raabe 26. Nov 2018 11:27

AW: MainMenu seit 10.3 größer
 
Liste der Anhänge anzeigen (Anzahl: 3)
Ich habe die Änderungen noch nicht im Detail analysiert, vermute aber, daß hier versehentlich die ShortCutGap (der Bereich zwischen Caption und Shortcut im dargestellten Text) auch für die Toplevel-Einträge berücksichtigt wird, obwohl die gar keinen ShortCut anzeigen. Früher wurde das bei OwnerDraw-Menüs (und dazu gehören eben auch solche mit ImageList) einfach ignoriert.

Die aktuelle Darstellung der OwnerDraw-Menüs ist zwar schon etwas besser als in 10.2, kommt aber noch nicht an das Windows-Original heran. Leider hat man meine diesbezüglichen Änderungen nicht vollständig übernommen.

Als Beispiel hier ein Standard-Menü, ein Owner-Draw aus 10.2 und eines aus 10.3 - man sieht deutlich die ShortCutGap in 10.3, aber trotzdem ist die Darstellung noch nicht perfekt.

DieDolly 26. Nov 2018 11:37

AW: MainMenu seit 10.3 größer
 
Dann lässt sich nur auf ein Update hoffen. Zeit genug deinen Code zu übernehmen war eigentlich gegeben.

Uwe Raabe 26. Nov 2018 12:10

AW: MainMenu seit 10.3 größer
 
Zitat:

Zitat von DieDolly (Beitrag 1419243)
Dann lässt sich nur auf ein Update hoffen. Zeit genug deinen Code zu übernehmen war eigentlich gegeben.

Ich vermute, man hat das Problem gar nicht verstanden. Es gibt ja auch keinen QP-Eintrag dafür, den man hätte abhaken können. Die IDE selbst leidet übrigens auch daran.

Das mit der ShortCutGap im Toplevel Menü ist allerdings in der Tat ein Bug und den solltest du vielleicht auch melden. Schließlich hast du ihn auch gefunden.

uligerhardt 26. Nov 2018 13:13

AW: MainMenu seit 10.3 größer
 
Ich weiß nur, dass sich David Heffernan seit Jahren mit dem Thema Menüs in der VCL beschäftigt. Wenn ich ihn richtig verstanden habe, könnte man das ganze Rendering (auch mit ImageLists) mittlerweile einfach Windows überlassen und gut wär's.

Edit: Z.B. hier: https://stackoverflow.com/questions/...ible-in-delphi

Uwe Raabe 26. Nov 2018 13:36

AW: MainMenu seit 10.3 größer
 
Zitat:

Zitat von uligerhardt (Beitrag 1419250)
Ich weiß nur, dass sich David Heffernan seit Jahren mit dem Thema Menüs in der VCL beschäftigt. Wenn ich ihn richtig verstanden habe, könnte man das ganze Rendering (auch mit ImageLists) mittlerweile einfach Windows überlassen und gut wär's.

Das trifft nur für Standard-Menüs mit Images zu und erfordert dazu noch spezielle Eigenschaften der Icons. Sobald aber echtes OwnerDraw ins Spiel kommt, ist das leider keine Option mehr. Es ist aber erwiesenermaßen durchaus möglich, das Windows-Verhalten nachzubilden (obwohl Microsoft sich bei der Spezifikation sehr bedeckt hält). Man muss sich nur etwas Mühe geben oder meine Änderungen einpflegen.

DieDolly 26. Nov 2018 14:03

AW: MainMenu seit 10.3 größer
 
Zitat:

Man muss sich nur etwas Mühe geben oder meine Änderungen einpflegen.
Dieser Satz trifft es doch vorzüglich.

KodeZwerg 26. Nov 2018 14:31

AW: MainMenu seit 10.3 größer
 
Nur um es zu komplettieren, wo bitte gibt es diese "Änderungen zum einpflegen"?
Ich habe es bestimmt überlesen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 Uhr.
Seite 1 von 3  1 23      

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