====== TTimer — Zeitgeber ====== Ruft in festem Abstand einen Handler. Kein Steuerelement — ein Zeitgeber zeichnet nie und hängt darum direkt an [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]], nicht an [[lyx_-_programmiersprache:vega:controls:tcontrol|TControl]]. Der Weg für alles, was regelmäßig passieren soll — Animation, Statusaktualisierung, blinkende Schreibmarke. Unit: ''Vega.Forms'' · Basis: [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] → [[lyx_-_programmiersprache:vega:controls|Alle Steuerelemente]] · [[lyx_-_programmiersprache:vega:guides:komponenten|Guide: Komponenten]] ---- ===== Verwendung ===== var t: TTimer := NewTimer(20); // alle 20 ms t.OnTimer := OnTick; t.Start(); g_app.AddTimer(t); // OHNE dies feuert er nie fn OnTick(sender: TControl): void { g_wert := g_wert + 1; g_anzeige.SetCaption(IntToStr(g_wert)); } t.Stop(); // anhalten t.IntervalMs := 500; // Abstand aendern t.Start(); ---- ===== Besonderheiten ===== * **Zwei Schritte**: ''Start()'' schaltet den Timer scharf, ''AddTimer'' meldet ihn bei der Anwendung an. Fehlt einer davon, passiert nichts. * **Ein Timer, der durchläuft, ist einfacher als einer, der ständig an- und abgemeldet wird** — der Handler entscheidet, ob er etwas tut. * Der Handler läuft in der Ereignisschleife, nicht in einem Thread: Lange Arbeit darin hält die Oberfläche an. * ''Tag'' unterscheidet mehrere Timer in einem gemeinsamen Handler. * Genauigkeit: Der Abstand ist eine Untergrenze — bei ausgelasteter Schleife feuert er später. ---- ===== Eigenschaften ===== Alle Eigenschaften, auch die geerbten. ^ Name ^ Typ ^ Bedeutung ^ Herkunft ^ | ''IntervalMs'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Abstand in Millisekunden | eigen | | ''Enabled'' | [[lyx_-_programmiersprache:sprache:datentypen#5_wahrheitswerte_bool|bool]] | Nimmt Eingaben an | eigen | | ''NextDue'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Wann der Zeitgeber wieder dran ist | eigen | | ''Owner'' | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | Wer diese Komponente wegräumt — nicht das Elternteil im Zeichenbaum | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''OwnedComponents'' | [[lyx_-_programmiersprache:vega:controls:tobjectlist|TObjectList]] | Die Komponenten, die dieser gehören (Delphis ''Components[]'') | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Name'' | [[lyx_-_programmiersprache:sprache:datentypen#pchar_nullterminierter_string|pchar]] | Name der Komponente, für ''FindComponent'' und Formulardateien | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Tag'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Freier Wert für die Anwendung | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''ComponentState'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Zustand als Bitmaske: ''csLoading'', ''csDestroying'', ''csDesigning'' … | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''ComponentStyle'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Stil als Bitmaske; Vorgabe ''csInheritable'' | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | ---- ===== Methoden ===== Alle Methoden, auch die geerbten. ^ Signatur ^ Zweck ^ Herkunft ^ | ''Create(interval_ms: int64): void'' | Anlegen; ''NewTimer(20)'' | eigen | | ''Start(): void'' | Zeitgeber einschalten | eigen | | ''Stop(): void'' | Zeitgeber ausschalten | eigen | | ''NextDueIn(now: int64): int64'' | Wie lange die Schleife höchstens schlafen darf, bis diese Komponente wieder dran ist; ''-1'' = nie von selbst | eigen | | ''Tick(now: int64): bool'' | Wird von der Anwendung gerufen | eigen | | ''InitComponent(): void'' | Grundzustand herstellen — von jeder Ableitung im ''Create'' zu rufen, da Lyx Konstruktoren nicht vererbt | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Destroy(): void'' | Gibt eigene Ressourcen frei | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''ComponentCount(): int64'' | Anzahl der eigenen Komponenten | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''Components(index: int64): TComponent'' | Eigene Komponente an dieser Stelle | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''ComponentIndex(): int64'' | Eigener Platz in der Liste des Besitzers, ''-1'' ohne Besitzer | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''InsertComponent(c: TComponent): void'' | Komponente in Besitz nehmen; ein bisheriger Besitzer gibt sie ab | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''RemoveComponent(c: TComponent): void'' | Komponente aus dem Besitz nehmen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''FindComponent(name: pchar): TComponent'' | Eigene Komponente über ihren ''Name'' suchen — eine Ebene tief | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''DestroyComponents(): void'' | Alle Besitztümer abbauen, von hinten nach vorn | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''SetName(v: pchar): void'' | Namen setzen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''GetName(): pchar'' | Namen lesen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''SetTag(v: int64): void'' | ''Tag'' setzen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''GetTag(): int64'' | ''Tag'' lesen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''HasState(bits: int64): bool'' | Sind diese Zustandsbits gesetzt | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''SetState(bits: int64): void'' | Zustandsbits setzen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''ClearState(bits: int64): void'' | Zustandsbits löschen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''HasParent(): bool'' | Hängt die Komponente in einem Baum | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''GetParentComponent(): TComponent'' | Übergeordnete Komponente im Baum | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''GetNamePath(): pchar'' | Voller Name für Formulardateien; in Vega der Name selbst | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | ---- ===== Ereignisse ===== ^ Name ^ Typ ^ Wann ^ Herkunft ^ | ''OnTimer'' | [[lyx_-_programmiersprache:vega:guides:events#die_handler-typen|TTimerEvent]] | Der Zeitgeber ist fällig | eigen | Letzte Aktualisierung: 2026-08-19 — API maschinell aus ''Vega/Forms.lyx'' erhoben, Beispiel mit ''lyxc 1.1.3I'' übersetzt.