AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Breite von PopupMenu ermitteln

Ein Thema von Codehunter · begonnen am 7. Okt 2010 · letzter Beitrag vom 8. Okt 2010
Antwort Antwort
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Breite von PopupMenu ermitteln

  Alt 7. Okt 2010, 16:17
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
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Breite von PopupMenu ermitteln

  Alt 7. Okt 2010, 16:44
Du kannst mal schauen, ob du mit OwnerDraw := True und OnMeasureItem weiterkommst.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.643 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Breite von PopupMenu ermitteln

  Alt 7. Okt 2010, 22:21
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.
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Breite von PopupMenu ermitteln

  Alt 8. Okt 2010, 08:56
Ich bin jetzt auf eine ganz einfache aber nicht wirklich elegante Methode gekommen: Da ich kein Standard-Menü verwende sondern so ein AdvPopupMenu ist die Größe nicht Windows-abhängig. Schnittstellen für die Abmessungen gibts da aber leider auch nicht. Also einfach nen Screenshot gemacht, in der Bildbearbeitung abgemessen und die Werte dann statisch in die Berechnung aufgenommen.

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.
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:54 Uhr.
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