Delphi-PRAXiS

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 Startbutton mit Menu oberhalb (https://www.delphipraxis.net/54972-startbutton-mit-menu-oberhalb.html)

mschaefer 14. Okt 2005 11:48


Startbutton mit Menu oberhalb
 
Moin zusammen,

suche eine Möglichkeit ein Popupmenu so aufgehen zu lassen, dass es exakt am oberen Rand eines Buttons andockt. Die Anzahl der Menüeinträge und Trennbalken kann dabei im Menü variieren. Es ist mir bisher nich möglich das so hinzubekommen, dass es sozusagen andockt, da das Menu nach unten aufgeht und man immer nur grob abschhätzen kann wie hoch es dann ist. Irgendwelche Ideen / Komponenten oder Links?


Grüße // Martin

tigerman33 14. Okt 2005 15:41

Re: Startbutton mit Menu oberhalb
 
Zu dem Zeitpunkt, wo du das Menü "up-poppen" lässt, muss doch feststehen, wieviele Einträge es hat, oder? Und die Höhe der einzelnen Zeilen ist konstant.

mschaefer 14. Okt 2005 15:52

Re: Startbutton mit Menu oberhalb
 
Tja, das ist so, bis auf die Trennlinien. Also muß man auch die Trennlinen zählen. Mal probieren (( Martin

Lannes 14. Okt 2005 17:13

Re: Startbutton mit Menu oberhalb
 
Hallo,

Delphi-Quellcode:
var pos : TPoint;
    i,z : Integer;
begin
  i := 0;
  for z := 0 to PopupMenu1.Items.Count-1 do
    if TMenuItem(PopupMenu1.Items[z]).Caption = '-' then
      inc(i,9)
      else
        inc(i,17);
  pos.x := Button1.Left;
  pos.y := Button1.Top-i-(2*3);
  pos := Form1.ClientToScreen(Pos);
  PopupMenu1.Popup(Pos.x,pos.y);
end;

mschaefer 14. Okt 2005 20:22

Re: Startbutton mit Menu oberhalb
 
Hallo Lannes,

ja sowas ähnliches hatte ich inzwischen auch gebaut, aber Du hast es sogar mit einer Variable weniger geschaft. Ein Danke in die Stadt der Glocken. Bei Meinem Code fällt mir auf, dass die Verschiebezahlen größer sind. Da ist dann die Schriftgröße noch ein Variabler Faktor. Das werde ich die Tage mal ausprobieren.

Danke Euch beiden und Viele Grüße // Martin

Lannes 23. Okt 2005 17:42

Re: Startbutton mit Menu oberhalb
 
Hallo,

eventuell hilft Dir das:
Delphi-Quellcode:
GetSystemMetrics(SM_CYMENUSIZE);


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 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