THotKey — Tastenkürzel aufnehmen

Ein Feld, das eine Tastenkombination entgegennimmt statt Text: der Benutzer drückt sie, das Feld zeigt sie an und merkt sie sich. Der übliche Weg, Kürzel in einem Einstellungsdialog vergeben zu lassen.

Unit: vega.extctrls · Basis: TControl

Alle Steuerelemente · Klassenbaum · Guide: Komponenten


Vererbung

Kette: TComponentTControlTHotKey

Direkte Nachfahren: keine — diese Klasse wird nicht weiter abgeleitet.

Quelle: vega/extctrls.lyx


Verwendung

var hk: THotKey := new THotKey();
hk.SetBounds(8, 8, 200, 24);
hk.SetParent(f);
hk.SetHotKey(KEY_S, MOD_CTRL);      // Vorgabe: Strg+S

// Auslesen, wenn der Dialog bestaetigt wurde:
var taste: int64 := hk.HotKey;
var mods:  int64 := hk.Modifiers;


Besonderheiten

  • Nackte Tasten sind standardmäßig abgelehnt. Ein Kürzel aus einer einzelnen Taste würde jede Eingabe im Programm belegen; AllowBareKeys schaltet die Sperre ab, wenn man es doch will.
  • InvalidKeys listet die abgelehnten Kombinationen (HKI_*). Vorgabe ist genau die nackte Taste — AllowBareKeys und dieses Feld werden zusammen gehalten.
  • Das Feld nimmt die Taste, nicht deren Wirkung. Solange es den Fokus hat, löst eine gedrückte Kombination kein Kürzel im Programm aus.

Eigenschaften

Alle Eigenschaften, auch die geerbten.

Name Typ Bedeutung Herkunft
ComponentState int64 Zustand als Bitmaske (csLoading, csDestroying …) TComponent
ComponentStyle int64 Stil als Bitmaske; Vorgabe csInheritable TComponent
Name pchar Name der Komponente — für FindComponent und beim Laden aus LFM TComponent
OwnedComponents TObjectList Die Komponenten, die DIESER gehoeren. Delphis Components[]. Zeigerliste, keine Kopien: TObjectList hält int64-Adressen TComponent
Owner TComponent Wer diese Komponente wegraeumt. Nicht der Elternteil im Zeichenbaum — das ist bei TControl `Parent` TComponent
Tag int64 Freier Wert für eigene Zwecke; die Bibliothek fasst ihn nicht an TComponent
AllowBareKeys bool Nimmt das Feld auch Kombinationen ohne Umschalter an? Aus, weil ein Kürzel aus einer nackten Taste jede Eingabe im Programm belegen wuerde. Dasselbe wie HKI_NONE in InvalidKeys, unter … eigen
BorderStyle int64 Rahmen um das Feld. Delphi hat ihn an jedem Eingabefeld eigen
HotKey int64 Die aufgenommene Taste (KEY_*) und ihre Umschalter (MOD_*) eigen
InvalidKeys int64 Abgelehnte Kombinationen (HKI_*). Vorgabe: nur die nackte Taste eigen
Modifiers int64 Umschalter des Kürzels (MOD_*) eigen

Methoden

Alle Methoden, auch die geerbten.

Signatur Zweck Herkunft
ClearState(bits: int64): void Zustandsbits löschen TComponent
ComponentCount(): int64 Anzahl der eigenen Komponenten TComponent
ComponentIndex(): int64 Delphis ComponentIndex: der eigene Platz in der Liste des Besitzers TComponent
Components(index: int64): TComponent Eigene Komponente an dieser Stelle TComponent
Destroy(): void Raeumt die eigene Liste ab, aber NICHT die Einträge — welche Komponenten ihre Besitztuemer mitnehmen, entscheidet die Ableitung über DestroyComponents() TComponent
DestroyComponents(): void Baut die Besitztuemer ab. Von hinten, weil jedes Destroy() sich selbst aus der Liste austraegt TComponent
FindComponent(name: pchar): TComponent Sucht unter den EIGENEN Komponenten, eine Ebene tief — wie in Delphi TComponent
GetName(): pchar Namen lesen TComponent
GetNamePath(): pchar Der eigene Name. Delphi hängt bei Unterkomponenten den des Besitzers davor; Vega hat keine, also ist es der Name selbst TComponent
GetTag(): int64 Tag lesen TComponent
HasState(bits: int64): bool Sind diese Zustandsbits gesetzt TComponent
InitComponent(): void Kein Konstruktor: lyxc vererbt Konstruktoren nicht, jede Ableitung ruft InitComponent() im eigenen Create() TComponent
InsertComponent(c: TComponent): void Komponente in Besitz nehmen; ein bisheriger Besitzer gibt sie ab TComponent
RemoveComponent(c: TComponent): void Komponente aus dem Besitz nehmen TComponent
SetName(v: pchar): void Setzt Name TComponent
SetState(bits: int64): void Zustand setzen TComponent
SetTag(v: int64): void Setzt Tag TComponent
Clear(): void Leeren — bei TBitmap die Fläche mit c füllen eigen
Create(): void Anlegen; new THotKey() eigen
HasHotKey(): bool Ob eine Kombination aufgenommen wurde eigen
HotKeyText(dst: TTextBuffer): void Den angezeigten Text bauen: „Strg+Umschalt+F5“ eigen
IsInvalidCombo(mods: int64): bool Ist diese Umschalterkombination abgelehnt? Geprueft wird die genaue Kombination, nicht einzelne Umschalter — Strg+Alt darf erlaubt sein, während Strg allein es nicht ist eigen
SetAllowBareKeys(v: bool): void Beide Namen für dieselbe Aussage zusammenhalten: wer die nackte Taste erlaubt, nimmt HKI_NONE aus der Maske, und umgekehrt eigen
SetBorderStyle(v: int64): void Setzt BorderStyle eigen
SetHotKey(key: int64, mods: int64): void Setzt HotKey eigen
SetInvalidKeys(mask: int64): void Setzt InvalidKeys eigen

Ereignisse

Name Typ Wann Herkunft
OnChange TNotifyEvent Der Inhalt oder die Auswahl hat sich geändert eigen

Letzte Aktualisierung: 2026-09-05 — Seite neu angelegt; erhoben aus vega/extctrls.lyx im Repo lyx-vcl.