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

  • Add liefert den neuen Eintrag, nicht das Menü — daran hängt man Handler und Untereinträge: mDatei.Add(„Öffnen“).OnClick := …. Ein AddRoot/AddChild gibt es nicht.
  • Blatt und Zweig sind derselbe Typ. Wer Add auf einem Eintrag ruft, macht ihn zum Untermenü; HasItems() fragt das ab.
  • Trenner sind echte Einträge mit IsSeparator = true — sie zählen in ItemCount mit und nehmen keine Klicks an.
  • SetShortcut(key, mods) nimmt einen Tastencode aus Vega.Events und eine MOD_*-Maske. FindShortcut sucht rekursiv durch alle Untermenüs — so findet ein Fenster den Eintrag zu einer Tastenkombination.
  • Enabled sperrt einen Eintrag, Checked setzt den Haken; beides zeichnet das Menü selbst.
  • ActionPtr verbindet den Eintrag mit einer TAction — dann kommen Beschriftung, Zustand und Kürzel von dort.
  • Die Untereinträge gehören dem Eintrag: sein Destroy nimmt 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.