====== Vega.Menus — Menüleiste, Kontextmenü, Einträge ====== Menüs sind anders als alle anderen Widgets: ein aufgeklapptes Menü liegt **über** dem Formularinhalt und fängt alle Klicks ab, auch die daneben. Deshalb ist es kein gewöhnliches Kind im Baum, sondern ein Overlay, das die Anwendung vorrangig bedient. Quelldatei: ''Vega/Menus.lyx'' → [[lyx_-_programmiersprache:vega:units|Alle Units]] · [[lyx_-_programmiersprache:vega:controls|Alle Steuerelemente]] · [[lyx_-_programmiersprache:vega|Vega VCL]] ---- ===== Klassen ===== ^ Klasse ^ Basis ^ Zweck ^ | ''TMenuItem'' | — | Ein Eintrag: Beschriftung, Kürzel, Haken, Untermenü | | ''TMenuPopup'' | — | Das aufgeklappte Feld selbst | | ''TMainMenu'' | [[lyx_-_programmiersprache:vega:controls:tcontrol|TControl]] | Menüleiste am oberen Fensterrand | | ''TPopupMenu'' | [[lyx_-_programmiersprache:vega:controls:tcontrol|TControl]] | Kontextmenü, aufgerufen mit der rechten Maustaste | ===== Typaliase ===== ^ Name ^ Ist ^ Zweck ^ | ''TActionRunner'' | ''fn(actionPtr: int64): void'' | Haken, über den [[lyx_-_programmiersprache:vega:units:actions|Vega.Actions]] das Auslösen übernimmt | ===== Konstanten ===== ^ Name ^ Typ ^ Wert ^ Bedeutung ^ | ''VEGA_MAX_MENU_ITEMS'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''32'' | Höchstzahl der Einträge eines Menüs | | ''VEGA_NO_ITEM_SEL'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''0 - 1'' | Kein Eintrag hervorgehoben | | ''VEGA_MENU_PAD'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''6'' | Innenabstand eines Eintrags | | ''VEGA_SEP_HEIGHT'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''7'' | Höhe einer Trennlinie | ===== Freie Funktionen ===== ^ Signatur ^ Zweck ^ | ''SetActionRunner(r: TActionRunner): void'' | Trägt ein, wer eine verknüpfte Aktion ausführt — gerufen von [[lyx_-_programmiersprache:vega:units:actions|Vega.Actions]] | | ''RunAction(ptr: int64): bool'' | Führt die hinterlegte Aktion aus; ''false'', wenn keine hängt | | ''NewMenuItem(caption: pchar): TMenuItem'' | Erzeugt einen Eintrag mit dieser Beschriftung | | ''NewMainMenu(): TMainMenu'' | Erzeugt eine Menüleiste | | ''NewPopupMenu(): TPopupMenu'' | Erzeugt ein Kontextmenü | ---- ===== Zu beachten ===== * Aufgebaut wird mit ''Add'' — ''mm.Add("Datei")'' liefert den Eintrag, ''mDatei.Add("Öffnen").OnClick := …'' hängt den Handler an. Ein ''AddRoot''/''AddChild'' gibt es nicht. * Kürzel setzt ''Item(i).SetShortcut(code, MOD_CTRL)''. * Die Menüleiste nimmt am Layout **nicht** teil: sie liegt über dem Inhalt, statt Platz zu beanspruchen. * Für Befehle an mehreren Stellen (Menü, Leiste, Knopf) ist [[lyx_-_programmiersprache:vega:units:actions|Vega.Actions]] der bessere Weg als drei gleiche Handler. ---- ===== Abhängigkeiten ===== **Importiert:** [[lyx_-_programmiersprache:vega:units:types|Vega.Types]], [[lyx_-_programmiersprache:vega:units:events|Vega.Events]], [[lyx_-_programmiersprache:vega:units:canvas|Vega.Canvas]], [[lyx_-_programmiersprache:vega:units:theme|Vega.Theme]], [[lyx_-_programmiersprache:vega:units:control|Vega.Control]], [[lyx_-_programmiersprache:vega:units:font|Vega.Font]], [[lyx_-_programmiersprache:vega:units:style|Vega.Style]], [[lyx_-_programmiersprache:vega:units:strings|Vega.Strings]], [[lyx_-_programmiersprache:vega:units:lists|Vega.Lists]] **Wird importiert von:** [[lyx_-_programmiersprache:vega:units:actions|Vega.Actions]], [[lyx_-_programmiersprache:vega:units:forms|Vega.Forms]] Letzte Aktualisierung: 2026-08-20 — Klassen, Aufzählungen, Konstanten und freie Funktionen maschinell aus ''Vega/Menus.lyx'' erhoben.