TMenuItem — Menüeintrag
Ein Eintrag in einem Menü: Beschriftung, Handler, Kürzel, Haken — und wahlweise eigene Untereinträge. Damit ist derselbe Typ Blatt und Zweig.
Unit: Vega.Menus · Basis: keine — eigene Wurzel
→ Alle Steuerelemente · TMainMenu · Guide: Befehle
Vererbung
Kette: TMenuItem — 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
Verwendung
var mDatei: TMenuItem := mm.Add("Datei"); // von TMainMenu
var mOeffnen: TMenuItem := mDatei.Add("Öffnen");
mOeffnen.SetShortcut(79, MOD_CTRL); // Strg+O
mOeffnen.OnClick := AufOeffnen;
mDatei.AddSeparator();
var mEnde: TMenuItem := mDatei.Add("Beenden");
mEnde.OnClick := AufEnde;
Print(IntToStr(mDatei.ItemCount)); // 3 — Trenner zählt mit
Print(IntToStr(mDatei.Item(1).IsSeparator as int64)); // 1
Print(mDatei.Item(2).GetCaption()); // Beenden
var f: TMenuItem := mDatei.FindShortcut(79, MOD_CTRL);
Print(f.GetCaption()); // Öffnen
Besonderheiten
Addliefert den neuen Eintrag, nicht das Menü — daran hängt man Handler und Untereinträge:mDatei.Add(„Öffnen“).OnClick := …. EinAddRoot/AddChildgibt es nicht.- Blatt und Zweig sind derselbe Typ. Wer
Addauf einem Eintrag ruft, macht ihn zum Untermenü;HasItems()fragt das ab. - Trenner sind echte Einträge mit
IsSeparator = true— sie zählen inItemCountmit und nehmen keine Klicks an. SetShortcut(key, mods)nimmt einen Tastencode aus Vega.Events und eineMOD_*-Maske.FindShortcutsucht rekursiv durch alle Untermenüs — so findet ein Fenster den Eintrag zu einer Tastenkombination.Enabledsperrt einen Eintrag,Checkedsetzt den Haken; beides zeichnet das Menü selbst.ActionPtrverbindet den Eintrag mit einer TAction — dann kommen Beschriftung, Zustand und Kürzel von dort.- Die Untereinträge gehören dem Eintrag: sein
Destroynimmt sie mit.
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, Beispiel mit lyxc 1.1.4B übersetzt und ausgeführt.
Eigenschaften
Alle Eigenschaften, auch die geerbten.
| Name | Typ | Bedeutung | Herkunft |
|---|---|---|---|
Caption | TTextBuffer | Beschriftung — hält nur den Zeiger, keine Kopie | eigen |
Items | TObjectList | Untereinträge | eigen |
ItemCount | int64 | Anzahl der Untereinträge — Trenner zählen mit | eigen |
Parent | TMenuItem | Zeichnerisches Elternteil | eigen |
Enabled | bool | Nimmt Eingaben an | eigen |
Checked | bool | Angehakt bzw. ausgewählt | eigen |
IsSeparator | bool | Ist der Eintrag ein Trenner | eigen |
Tag | int64 | Freier Wert für die Anwendung | eigen |
ShortcutKey | int64 | Tastencode des Kürzels | eigen |
ShortcutMods | int64 | Zusatztasten des Kürzels (MOD_*) | eigen |
ActionPtr | int64 | Verknüpfte Aktion (als Adresse) | eigen |
AutoCheck | bool | Klick schaltet den Haken selbst um, ohne dass der Handler es tut | eigen |
Default | bool | Der Eintrag, den ein Doppelklick auf das Elternmenue ausloest. Wird fett gezeichnet | eigen |
GroupIndex | int64 | Gruppennummer für Einträge, die sich gegenseitig ausschließen | eigen |
Hint | pchar | Hinweistext, den eine Statuszeile zeigen kann | eigen |
ImageIndex | int64 | Symbol aus der Bilderliste des Menues; -1 = keins | eigen |
RadioItem | bool | Auswahlpunkt statt Haken: innerhalb einer GroupIndex-Gruppe ist immer genau einer angehakt | eigen |
Visible | bool | Unsichtbare Einträge nehmen keinen Platz ein und sind nicht anwaehlbar — wie in Delphi der übliche Weg, ein Menue an den Zustand der Anwendung anzupassen | eigen |
Methoden
Alle Methoden, auch die geerbten.
| Signatur | Zweck | Herkunft |
|---|---|---|
Create(caption: pchar): void | Konstruktor | eigen |
Destroy(): void | Gibt eigene Ressourcen frei | eigen |
GetCaption(): pchar | Beschriftung lesen | eigen |
SetCaption(s: pchar): void | Beschriftung setzen | eigen |
Add(caption: pchar): TMenuItem | Eintrag anhängen | eigen |
AddSeparator(): TMenuItem | Trenner anhängen | eigen |
Item(i: int64): TMenuItem | Untereintrag an dieser Stelle | eigen |
HasItems(): bool | Hat der Eintrag Untereinträge | eigen |
SetShortcut(key: int64, mods: int64): void | Tastenkürzel setzen | eigen |
FindShortcut(key: int64, mods: int64): TMenuItem | Eintrag zu einer Tastenkombination suchen — rekursiv durch alle Untermenüs | eigen |
CheckRadio(): void | Diesen Punkt setzen und die Geschwister derselben Gruppe löschen | eigen |
Clear(): void | Entfernt alle Untereinträge | eigen |
Click(): void | Den Eintrag ausloesen, als haette man ihn angeklickt. Der Weg für Tastenkürzel und für Programme, die ein Menue fernbedienen | eigen |
Count(): int64 | Delphi-Namen: Count ist die Zahl der Untereintraege, IsLine fragt den Trennstrich ab | eigen |
Delete(index: int64): void | Einen Untereintrag löschen und freigeben | eigen |
IndexOf(m: TMenuItem): int64 | Position eines Eintrags, oder -1 | eigen |
IndexOfCaption(caption: pchar): int64 | Position eines Eintrags, oder -1 | eigen |
Insert(index: int64, caption: pchar): TMenuItem | Einen Eintrag an einer bestimmten Stelle einfuegen | eigen |
IsLine(): bool | Ob dieser Eintrag ein Trennstrich ist | eigen |
MenuIndex(): int64 | Stelle unter den Geschwistern; Delphi nennt sie MenuIndex | eigen |
Remove(m: TMenuItem): bool | Einen Eintrag herausnehmen, OHNE ihn freizugeben — Delphis Remove. Wer ihn herausnimmt, hängt ihn meist woanders wieder ein | eigen |
SetVisible(v: bool): void | Setzt Visible | eigen |
VisibleCount(): int64 | Wie viele Einträge man SIEHT, und der i-te davon. Das Aufklappmenue rechnet damit — unsichtbare Einträge nehmen keinen Platz ein | eigen |
Ereignisse
| Name | Typ | Wann | Herkunft |
|---|---|---|---|
OnClick | TNotifyEvent | Klick | eigen |
Letzte Aktualisierung: 2026-08-20 — API maschinell aus Vega/Menus.lyx erhoben, Beispiel mit lyxc 1.1.4B übersetzt und ausgeführt.
