Das Feld, das erscheint, wenn ein Menü aufklappt: Es rechnet seine Größe aus den Einträgen aus, weiß, welcher Eintrag unter dem Zeiger liegt, und hält ein etwaiges Untermenü.
Unit: Vega.Menus · Basis: keine — eigene Wurzel
→ Alle Steuerelemente · TMainMenu · TPopupMenu
Kette: TMenuPopup — eigene Wurzel, kein Vorfahr. Was diese Klasse kann, steht vollständig auf dieser Seite.
Direkte Nachfahren: keine — diese Klasse wird nicht weiter abgeleitet.
Quelle: vega/menus.lyx
Im Alltag legt man kein TMenuPopup selbst an — TMainMenu und TPopupMenu tun das beim Aufklappen und halten es in ihrem Feld Popup. Wer eigene Menüdarstellungen baut, benutzt es unmittelbar:
var pp: TMenuPopup := new TMenuPopup(wurzel, 100, 80); // Einträge, x, y
Print(IntToStr(pp.Width())); // Breite aus dem längsten Eintrag
Print(IntToStr(pp.Height())); // Höhe aus der Anzahl
Print(IntToStr(pp.IndexAt(10, 30))); // Eintrag an dieser Stelle
Print(IntToStr(pp.Contains(120, 90) as int64));
pp.OpenSub(2); // Untermenü zu Eintrag 2
pp.CloseSub();
Contains und DeepContains sind zweierlei. Contains prüft nur dieses Feld, DeepContains auch das offene Untermenü — genau diese Unterscheidung entscheidet, ob ein Klick „daneben„ war und das Menü schließt.Sub zeigt auf das offene Untermenü, SubIndex auf den Eintrag, zu dem es gehört. OpenSub(i) schließt ein etwaiges vorheriges zuerst.HotIndex ist der Eintrag unter dem Zeiger; IndexAt(lx, ly) rechnet ihn aus lokalen Koordinaten aus.ItemHeight() und ItemTop(i) liefern das Raster — eine Stelle für Zeichnen und Treffertest, damit beide nicht auseinanderlaufen.Paint bekommt Thema und aufgelösten Stil mit, statt sie selbst zu holen: Das Feld wird als Overlay vom Menü gezeichnet, nicht vom Zeichenbaum.
Letzte Aktualisierung: 2026-09-05 — gegen lyx-vcl/vega/*.lyx abgeglichen: Abschnitt „Vererbung“ (Vorfahr-Kette, direkte Nachfahren, Quelldatei) ergänzt und die fehlenden Eigenschaften, Methoden und Ereignisse nachgetragen.
Vorherige letzte Aktualisierung: 2026-08-20 — API maschinell aus Vega/Menus.lyx erhoben; Werte mit lyxc 1.1.4B über TMainMenu und TPopupMenu geprüft.
Alle Eigenschaften, auch die geerbten.
| Name | Typ | Bedeutung | Herkunft |
|---|---|---|---|
Root | TMenuItem | Unsichtbarer Wurzeleintrag bzw. Wurzelknoten | eigen |
X | int64 | Linke Kante des Menüfeldes | eigen |
Y | int64 | Obere Kante des Menüfeldes | eigen |
HotIndex | int64 | Eintrag bzw. Titel unter dem Zeiger | eigen |
Sub | TMenuPopup | Offenes Untermenü | eigen |
SubIndex | int64 | Eintrag, zu dem das Untermenü gehört | eigen |
Images | TImageList | Symbolsatz des Menues, das dieses Aufklappmenue geoeffnet hat. Es besitzt ihn nicht — wie überall bei TImageList | eigen |
Alle Methoden, auch die geerbten.
| Signatur | Zweck | Herkunft |
|---|---|---|
Create(root: TMenuItem, x: int64, y: int64): void | Konstruktor | eigen |
Destroy(): void | Gibt eigene Ressourcen frei | eigen |
ItemHeight(): int64 | Höhe einer Menüzeile | eigen |
ItemTop(index: int64): int64 | Obere Kante einer Menüzeile | eigen |
Height(): int64 | Höhe des Menüfeldes, aus der Zahl der Einträge | eigen |
Width(): int64 | Breite des Menüfeldes, aus dem längsten Eintrag | eigen |
IndexAt(lx: int64, ly: int64): int64 | Eintrag an dieser lokalen Stelle | eigen |
Contains(x: int64, y: int64): bool | Liegt der Punkt in diesem Feld | eigen |
DeepContains(x: int64, y: int64): bool | Liegt der Punkt in diesem Feld oder in einem offenen Untermenü | eigen |
CloseSub(): void | Offenes Untermenü schließen | eigen |
OpenSub(index: int64): void | Untermenü zu diesem Eintrag aufklappen | eigen |
Paint(canvas: TCanvas, th: TTheme, st: TStyleSet): void | Darstellung (überschreibbar) | eigen |
Keine.
Letzte Aktualisierung: 2026-08-20 — API maschinell aus Vega/Menus.lyx erhoben; Werte mit lyxc 1.1.4B über TMainMenu und TPopupMenu geprüft.