Vega.Events — Eingabe-Vokabular zwischen Backend und Kern
Was das Betriebssystem meldet, in einer für alle Backends gleichen Form. Diese Unit kennt bewusst kein TControl: sie beschreibt, was passiert ist, nicht wen es trifft. Die Zuordnung zu einem Steuerelement macht Vega.Dispatch — dadurch bleibt das Backend frei von VCL-Typen und es entsteht kein Zirkelbezug.
Quelldatei: Vega/Events.lyx
→ Alle Units · Alle Steuerelemente · Vega VCL
Typaliase
| Name | Ist | Zweck |
|---|---|---|
TEvent | struct { Kind: int64; Window: int64; X: int64; Y: int64; Button: int64; Key: int64; Ch: int64; Modifiers: int64; Delta: int64; Width: int64; Height: int64 } | Ein Ereignis mit allen Feldern, die irgendeine Art braucht |
Aufzählungen
| Enum | Werte | Zweck |
|---|---|---|
TEventKind | EK_NONE (0), EK_QUIT (1), EK_EXPOSE (2), EK_RESIZE (3), EK_MOUSE_DOWN (4), EK_MOUSE_UP (5), EK_MOUSE_MOVE (6), EK_MOUSE_WHEEL (7), EK_KEY_DOWN (8), EK_KEY_UP (9), EK_CHAR (10), EK_FOCUS_IN (11), EK_FOCUS_OUT (12), EK_CLOSE (13), EK_MOVE (14) | Art des Ereignisses |
TMouseButton | MB_NONE (0), MB_LEFT (1), MB_RIGHT (2), MB_MIDDLE (3) | Welche Maustaste |
Konstanten
| Name | Typ | Wert | Bedeutung |
|---|---|---|---|
MOD_SHIFT | int64 | 1 | Umschalttaste (Bitmaske) |
MOD_CTRL | int64 | 2 | Strg (Bitmaske) |
MOD_ALT | int64 | 4 | Alt (Bitmaske) |
MOD_SUPER | int64 | 8 | Windows-/Meta-Taste (Bitmaske) |
KEY_BACKSPACE | int64 | 8 | Rücktaste |
KEY_TAB | int64 | 9 | Tabulator |
KEY_RETURN | int64 | 13 | Eingabetaste |
KEY_ESCAPE | int64 | 27 | Esc |
KEY_SPACE | int64 | 32 | Leertaste |
KEY_DELETE | int64 | 127 | Entf |
KEY_LEFT | int64 | 256 | Pfeil links |
KEY_RIGHT | int64 | 257 | Pfeil rechts |
KEY_UP | int64 | 258 | Pfeil hoch |
KEY_DOWN | int64 | 259 | Pfeil runter |
KEY_HOME | int64 | 260 | Pos1 |
KEY_END | int64 | 261 | Ende |
KEY_PAGE_UP | int64 | 262 | Bild auf |
KEY_PAGE_DOWN | int64 | 263 | Bild ab |
KEY_INSERT | int64 | 264 | Einfg |
KEY_F1 | int64 | 265 | F1 |
KEY_F2 | int64 | 266 | F2 |
KEY_F3 | int64 | 267 | F3 |
KEY_F4 | int64 | 268 | F4 |
KEY_F5 | int64 | 269 | F5 |
KEY_F6 | int64 | 270 | F6 |
KEY_F7 | int64 | 271 | F7 |
KEY_F8 | int64 | 272 | F8 |
KEY_F9 | int64 | 273 | F9 |
KEY_F10 | int64 | 274 | F10 |
KEY_F11 | int64 | 275 | F11 |
KEY_F12 | int64 | 276 | F12 |
Freie Funktionen
| Signatur | Zweck |
|---|---|
EventNone(): TEvent | Leeres Ereignis — was PollEvent liefert, wenn nichts anliegt |
EventQuit(): TEvent | Die Anwendung soll enden |
EventExpose(): TEvent | Fensterinhalt ist neu zu zeichnen |
EventResize(w: int64, h: int64): TEvent | Fenstergröße hat sich geändert |
EventMove(x: int64, y: int64): TEvent | Fenster wurde verschoben |
EventMouse(kind: int64, x: int64, y: int64, button: int64, modifiers: int64): TEvent | Maustaste gedrückt, losgelassen oder Zeiger bewegt |
EventWheel(x: int64, y: int64, delta: int64, modifiers: int64): TEvent | Mausrad gedreht |
EventKey(kind: int64, key: int64, modifiers: int64): TEvent | Taste gedrückt oder losgelassen |
EventChar(ch: int64, modifiers: int64): TEvent | Zeichen eingegeben — das Ergebnis der Tastaturbelegung, nicht die Taste |
EventClose(): TEvent | Fenster soll geschlossen werden |
EventInWindow(e: TEvent, wnd: int64): TEvent | Dasselbe Ereignis, einem Fensterhandle zugeordnet |
EventIsMouse(e: TEvent): bool | Ist es ein Mausereignis |
EventIsKey(e: TEvent): bool | Ist es ein Tastaturereignis |
EventPos(e: TEvent): TPoint | Zeigerposition als TPoint |
HasModifier(e: TEvent, m: int64): bool | Ist diese Zusatztaste gedrückt |
Zu beachten
- Taste und Zeichen sind zweierlei.
EK_KEY_DOWNmeldet eine Taste (KEY_*),EK_CHARdas daraus entstandene Zeichen. Wer Text entgegennimmt, hört aufOnChar; wer Steuerung braucht (Pfeile, F-Tasten), aufOnKeyDown. - Die
MOD_*-Werte sind eine Bitmaske —HasModifier(e, MOD_CTRL)ist der lesbare Weg,e.Modifiers == MOD_CTRLscheitert, sobald zusätzlich die Umschalttaste liegt. - Die
KEY_*-Werte unterhalb 128 sind ASCII; darüber beginnt bei 256 der eigene Bereich für Tasten ohne Zeichen. - Ereignisse tragen alle Felder, auch die für ihre Art belanglosen — das spart je Art einen eigenen Typ und hält den Backend-Vertrag klein.
Abhängigkeiten
Importiert: Vega.Types
Wird importiert von: Vega.Actions, Vega.Backend, Vega.Backend.LyxOS, Vega.Backend.Null, Vega.Backend.Win32, Vega.Backend.X11, Vega.Calendar, Vega.Chrome, Vega.ColorCtrls, Vega.ColorDlg, Vega.Control, Vega.DateTimePicker, Vega.Dialogs, Vega.Dispatch, Vega.EditBtn, Vega.Edits, Vega.ExtCtrls, Vega.Extras, Vega.FileDlg, Vega.FontDlg, Vega.Forms, Vega.Grids, Vega.Hints, Vega.Images, Vega.Layout, Vega.LfmClasses, Vega.LfmLoad, Vega.LfmSave, Vega.ListCtrls, Vega.ListView, Vega.MaskEdit, Vega.Menus, Vega.StdCtrls, Vega.Trees, Vega.ValueList
Letzte Aktualisierung: 2026-08-20 — Klassen, Aufzählungen, Konstanten und freie Funktionen maschinell aus Vega/Events.lyx erhoben.
