![]() |
Breite von PopupMenu ermitteln
Ich möchte mir so ein Quickstart-Menü a la Opera-F12 basteln. Das gehört beim Aufpoppen zentriert auf den Bildschirm. Da ich aber nicht weiß wie hoch und breit das PopupMenu ist krieg ich die Zentrierung nicht exakt hin. Wie kann man die Abmessungen eines PopupMenu vor dem Aufpoppen bestimmen?
Grüße Cody |
AW: Breite von PopupMenu ermitteln
Du kannst mal schauen, ob du mit
Delphi-Quellcode:
und
OwnerDraw := True
Delphi-Quellcode:
weiterkommst.
OnMeasureItem
|
AW: Breite von PopupMenu ermitteln
Das wurde schon mal diskutiert und geht IMO immer noch nicht zufriedenstellend. Die Höhe könntest Du Dir über die Anzahl und Arten der Items errechnen, wobei aber Unterschiede bei den Windows-Versionen zu beachten sind. Für die Breite habe ich keine Lösung die funktioniert.
|
AW: Breite von PopupMenu ermitteln
Ich bin jetzt auf eine ganz einfache aber nicht wirklich elegante Methode gekommen: Da ich kein Standard-Menü verwende sondern so ein
![]() Wie gesagt, nicht elegant aber funktionieren tuts. Ich bin spaßeshalber mal in die tieferen Codeschichten beim Menü eingestiegen und habe tatsächlich nichts gefunden was eine Vorabberechnung der Größe ermöglichen würde. Windows generiert die Items dynamisch sobald die Anweisung kommt das Menü darzustellen. Ab dem Zeitpunkt ist die Geschichte ein Selbstläufer bis es auf dem Bildschirm erscheint. Offenbar gibts keine Callback-Schnittstellen o.Ä. um in die Abläufe einzugreifen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:12 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