====== TImageList — Sammlung gleich großer Symbole ====== Hält einen Satz Symbole in einheitlicher Größe — für Werkzeugleisten, Listen und Bäume. Kein Steuerelement, sondern ein reiner Behälter mit Zeichenmethoden — sie hängt darum direkt an [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]]. Unit: ''Vega.Images'' · Basis: [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] → [[lyx_-_programmiersprache:vega:controls|Alle Steuerelemente]] · [[lyx_-_programmiersprache:vega:guides:zeichnen|Guide: Zeichnen]] ---- ===== Verwendung ===== var il: TImageList := new TImageList(16, 16); var s: TBitmap := new TBitmap(); s.SetSize(16, 16); s.Clear(RGB(0, 128, 0)); Print(IntToStr(il.Add(s))); // 0 — Stelle des Symbols Print(IntToStr(il.Count())); // 1 // ganze Symbolsätze am Stück il.AddStripFromFile("symbole.png"); // n Symbole nebeneinander // zeichnen il.Draw(canvas, 4, 4, 0); il.DrawDisabled(canvas, 24, 4, 0); // blass, für gesperrte Knöpfe ---- ===== Besonderheiten ===== * ''Add'' legt immer eine **Kopie** in Listengröße an — passt die Größe nicht, wird skaliert. Das übergebene Bitmap bleibt dem Aufrufer, der es weiterbenutzen oder freigeben darf. Rückgabe ist die Stelle oder ''-1'' bei leerem Bild. * Die Kopien gehören der Liste: ''Delete'', ''Clear'' und ''Destroy'' geben sie frei. * ''AddStrip'' verlangt, dass die **Höhe** des Streifens der Listenhöhe entspricht, sonst tut es nichts. Es liefert die **Anzahl** der neuen Symbole, nicht deren Stelle. * ''DrawDisabled'' halbiert die Deckkraft, statt einen zweiten Symbolsatz zu verlangen — das sieht bei jedem Symbol richtig aus und spart Pflege. * Ein ''index'' außerhalb 0..''Count()''-1 zeichnet nichts. Letzte Aktualisierung: 2026-08-20 — API maschinell aus ''Vega/Images.lyx'' erhoben, Beispiel mit ''lyxc 1.1.3O'' übersetzt. ===== Eigenschaften ===== Alle Eigenschaften, auch die geerbten. ^ Name ^ Typ ^ Bedeutung ^ Herkunft ^ | ''Width'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Breite | eigen | | ''Height'' | [[lyx_-_programmiersprache:sprache:datentypen#1_ganzzahl-typen_signiert|int64]] | Höhe | eigen | | ''Items'' | [[lyx_-_programmiersprache:vega:controls:tobjectlist|TObjectList]] | Die Einträge | 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(w: int64, h: int64): void'' | Konstruktor | eigen | | ''Destroy(): void'' | Gibt eigene Ressourcen frei | eigen | | ''Clear(): void'' | Leeren — bei ''TBitmap'' die Fläche mit ''c'' füllen | eigen | | ''Count(): int64'' | Zahl der Einträge | eigen | | ''At(i: int64): TBitmap'' | Symbol an dieser Stelle | eigen | | ''Add(b: TBitmap): int64'' | Eintrag anhängen | eigen | | ''AddFromFile(path: pchar): int64'' | Bild laden und als Symbol anhängen | eigen | | ''AddStrip(b: TBitmap): int64'' | Waagerechten Streifen in gleich große Symbole zerlegen und alle anhängen; liefert die Anzahl | eigen | | ''AddStripFromFile(path: pchar): int64'' | Streifen aus einer Datei laden und zerlegen | eigen | | ''Delete(i: int64): void'' | Eintrag entfernen | eigen | | ''Draw(canvas: TCanvas, x: int64, y: int64, index: int64): void'' | Symbol ''index'' an ''x'',''y'' zeichnen | eigen | | ''DrawDisabled(canvas: TCanvas, x: int64, y: int64, index: int64): void'' | Symbol blass zeichnen — halbe Deckkraft statt zweitem Symbolsatz | eigen | | ''InitComponent(): void'' | Grundzustand herstellen — von jeder Ableitung im ''Create'' zu rufen, da Lyx Konstruktoren nicht vererbt | [[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]] | | ''Tick(now: int64): bool'' | Einmal je Bild aus der Fensterschleife; ''true'' = es hat sich etwas getan, also neu zeichnen | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | | ''NextDueIn(now: int64): int64'' | Wie lange die Schleife höchstens schlafen darf, bis diese Komponente wieder dran ist; ''-1'' = nie von selbst | [[lyx_-_programmiersprache:vega:controls:tcomponent|TComponent]] | ---- ===== Ereignisse ===== Keine. Letzte Aktualisierung: 2026-08-20 — API maschinell aus ''Vega/Images.lyx'' erhoben, Beispiel mit ''lyxc 1.1.3O'' übersetzt.