====== 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** [[lyx_-_programmiersprache:vega:controls:tcontrol|TControl]]: sie beschreibt, //was// passiert ist, nicht //wen// es trifft. Die Zuordnung zu einem Steuerelement macht [[lyx_-_programmiersprache:vega:units:dispatch|Vega.Dispatch]] — dadurch bleibt das Backend frei von VCL-Typen und es entsteht kein Zirkelbezug. Quelldatei: ''Vega/Events.lyx'' → [[lyx_-_programmiersprache:vega:units|Alle Units]] · [[lyx_-_programmiersprache:vega:controls|Alle Steuerelemente]] · [[lyx_-_programmiersprache:vega|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'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''1'' | Umschalttaste (Bitmaske) | | ''MOD_CTRL'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''2'' | Strg (Bitmaske) | | ''MOD_ALT'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''4'' | Alt (Bitmaske) | | ''MOD_SUPER'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''8'' | Windows-/Meta-Taste (Bitmaske) | | ''KEY_BACKSPACE'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''8'' | Rücktaste | | ''KEY_TAB'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''9'' | Tabulator | | ''KEY_RETURN'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''13'' | Eingabetaste | | ''KEY_ESCAPE'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''27'' | Esc | | ''KEY_SPACE'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''32'' | Leertaste | | ''KEY_DELETE'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''127'' | Entf | | ''KEY_LEFT'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''256'' | Pfeil links | | ''KEY_RIGHT'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''257'' | Pfeil rechts | | ''KEY_UP'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''258'' | Pfeil hoch | | ''KEY_DOWN'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''259'' | Pfeil runter | | ''KEY_HOME'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''260'' | Pos1 | | ''KEY_END'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''261'' | Ende | | ''KEY_PAGE_UP'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''262'' | Bild auf | | ''KEY_PAGE_DOWN'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''263'' | Bild ab | | ''KEY_INSERT'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''264'' | Einfg | | ''KEY_F1'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''265'' | F1 | | ''KEY_F2'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''266'' | F2 | | ''KEY_F3'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''267'' | F3 | | ''KEY_F4'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''268'' | F4 | | ''KEY_F5'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''269'' | F5 | | ''KEY_F6'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''270'' | F6 | | ''KEY_F7'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''271'' | F7 | | ''KEY_F8'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''272'' | F8 | | ''KEY_F9'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''273'' | F9 | | ''KEY_F10'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''274'' | F10 | | ''KEY_F11'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | ''275'' | F11 | | ''KEY_F12'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|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 [[lyx_-_programmiersprache:vega:units:types|TPoint]] | | ''HasModifier(e: TEvent, m: int64): bool'' | Ist diese Zusatztaste gedrückt | ---- ===== Zu beachten ===== * **Taste und Zeichen sind zweierlei.** ''EK_KEY_DOWN'' meldet eine Taste (''KEY_*''), ''EK_CHAR'' das daraus entstandene Zeichen. Wer Text entgegennimmt, hört auf ''OnChar''; wer Steuerung braucht (Pfeile, F-Tasten), auf ''OnKeyDown''. * Die ''MOD_*''-Werte sind eine Bitmaske — ''HasModifier(e, MOD_CTRL)'' ist der lesbare Weg, ''e.Modifiers == MOD_CTRL'' scheitert, 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:** [[lyx_-_programmiersprache:vega:units:types|Vega.Types]] **Wird importiert von:** [[lyx_-_programmiersprache:vega:units:actions|Vega.Actions]], [[lyx_-_programmiersprache:vega:units:backend|Vega.Backend]], [[lyx_-_programmiersprache:vega:units:backend_lyxos|Vega.Backend.LyxOS]], [[lyx_-_programmiersprache:vega:units:backend_null|Vega.Backend.Null]], [[lyx_-_programmiersprache:vega:units:backend_win32|Vega.Backend.Win32]], [[lyx_-_programmiersprache:vega:units:backend_x11|Vega.Backend.X11]], [[lyx_-_programmiersprache:vega:units:calendar|Vega.Calendar]], [[lyx_-_programmiersprache:vega:units:chrome|Vega.Chrome]], [[lyx_-_programmiersprache:vega:units:colorctrls|Vega.ColorCtrls]], [[lyx_-_programmiersprache:vega:units:colordlg|Vega.ColorDlg]], [[lyx_-_programmiersprache:vega:units:control|Vega.Control]], [[lyx_-_programmiersprache:vega:units:datetimepicker|Vega.DateTimePicker]], [[lyx_-_programmiersprache:vega:units:dialogs|Vega.Dialogs]], [[lyx_-_programmiersprache:vega:units:dispatch|Vega.Dispatch]], [[lyx_-_programmiersprache:vega:units:editbtn|Vega.EditBtn]], [[lyx_-_programmiersprache:vega:units:edits|Vega.Edits]], [[lyx_-_programmiersprache:vega:units:extctrls|Vega.ExtCtrls]], [[lyx_-_programmiersprache:vega:units:extras|Vega.Extras]], [[lyx_-_programmiersprache:vega:units:filedlg|Vega.FileDlg]], [[lyx_-_programmiersprache:vega:units:fontdlg|Vega.FontDlg]], [[lyx_-_programmiersprache:vega:units:forms|Vega.Forms]], [[lyx_-_programmiersprache:vega:units:grids|Vega.Grids]], [[lyx_-_programmiersprache:vega:units:hints|Vega.Hints]], [[lyx_-_programmiersprache:vega:units:images|Vega.Images]], [[lyx_-_programmiersprache:vega:units:layout|Vega.Layout]], [[lyx_-_programmiersprache:vega:units:lfmclasses|Vega.LfmClasses]], [[lyx_-_programmiersprache:vega:units:lfmload|Vega.LfmLoad]], [[lyx_-_programmiersprache:vega:units:lfmsave|Vega.LfmSave]], [[lyx_-_programmiersprache:vega:units:listctrls|Vega.ListCtrls]], [[lyx_-_programmiersprache:vega:units:listview|Vega.ListView]], [[lyx_-_programmiersprache:vega:units:maskedit|Vega.MaskEdit]], [[lyx_-_programmiersprache:vega:units:menus|Vega.Menus]], [[lyx_-_programmiersprache:vega:units:stdctrls|Vega.StdCtrls]], [[lyx_-_programmiersprache:vega:units:trees|Vega.Trees]], [[lyx_-_programmiersprache:vega:units:valuelist|Vega.ValueList]] Letzte Aktualisierung: 2026-08-20 — Klassen, Aufzählungen, Konstanten und freie Funktionen maschinell aus ''Vega/Events.lyx'' erhoben.