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 TComponent.

Unit: Vega.Images · Basis: TComponent

→ Alle Steuerelemente · Guide: Zeichnen


Vererbung

Kette: TComponent → TImageList

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

Quelle: vega/images.lyx


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-09-05 — gegen lyx-vcl/vega/*.lyx abgeglichen: Abschnitt „Vererbung„ (Vorfahr-Kette, direkte Nachfahren, Quelldatei) ergänzt und die fehlenden Eigenschaften, Methoden und Ereignisse nachgetragen.

Vorherige 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 int64 Breite eigen
Height int64 Höhe eigen
Items TObjectList Untereinträge eigen
Owner TComponent Wer diese Komponente wegräumt — nicht das Elternteil im Zeichenbaum TComponent
OwnedComponents TObjectList Die Komponenten, die dieser gehören (Delphis Components[]) TComponent
Name pchar Name der Komponente, für FindComponent und Formulardateien TComponent
Tag int64 Freier Wert für die Anwendung TComponent
ComponentState int64 Zustand als Bitmaske: csLoading, csDestroying, csDesigning … TComponent
ComponentStyle int64 Stil als Bitmaske; Vorgabe csInheritable 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
AddImages(other: TImageList): int64 Alle Bilder einer anderen Liste übernehmen eigen
AddMasked(b: TBitmap, maske: TColor): int64 Ein Bild mit Maskenfarbe aufnehmen: alle Punkte dieser Farbe werden durchsichtig. Delphis AddMasked — der übliche Weg für Symbole, die aus einer Datei ohne Alphakanal kommen eigen
Assign(other: TImageList): void Inhalt und Größe einer anderen Liste übernehmen; der eigene wird vorher freigegeben eigen
BeginUpdate(): void Änderungen buendeln: zwischen BeginUpdate und EndUpdate meldet die Liste nichts. Ohne das feuert OnChange bei jedem einzelnen Bild eigen
Changed(): void Meldet, dass sich der Inhalt geaendert hat eigen
EndUpdate(): void Beendet die Sammeländerung und zeichnet einmal neu eigen
Exchange(a: int64, b: int64): void Zwei Bilder tauschen und eines verschieben — Delphis Move eigen
GetBitmap(index: int64, dst: TBitmap): bool Eine Kopie eines Bildes herausgeben — Delphis GetBitmap. Die Liste gibt ihr eigenes NICHT heraus, sonst haette der Aufrufer einen Verweis auf etwas, das sie beim nächsten … eigen
Insert(index: int64, b: TBitmap): int64 Ein Bild an einer bestimmten Stelle einsetzen. Wie Add wird es auf die Listengroesse gebracht eigen
Move(von: int64, nach: int64): void Verschiebt das Bild von von nach nach eigen
Replace(index: int64, b: TBitmap): bool Ein vorhandenes Bild ersetzen. Das alte wird freigegeben — die Liste besitzt ihre Bilder eigen
SetSize(w: int64, h: int64): void Größe ändern. Die vorhandenen Bilder werden mitskaliert, statt sie wegzuwerfen — in Delphi bleiben sie ebenfalls erhalten eigen
StretchDraw(canvas: TCanvas, r: TRect, index: int64): void In ein Rechteck gezogen zeichnen — Delphis StretchDraw eigen
Updating(): bool Ob gerade eine Sammeländerung läuft eigen
InitComponent(): void Grundzustand herstellen — von jeder Ableitung im Create zu rufen, da Lyx Konstruktoren nicht vererbt TComponent
ComponentCount(): int64 Anzahl der eigenen Komponenten TComponent
Components(index: int64): TComponent Eigene Komponente an dieser Stelle TComponent
ComponentIndex(): int64 Eigener Platz in der Liste des Besitzers, -1 ohne Besitzer 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
FindComponent(name: pchar): TComponent Eigene Komponente über ihren Name suchen — eine Ebene tief TComponent
DestroyComponents(): void Alle Besitztümer abbauen, von hinten nach vorn TComponent
SetName(v: pchar): void Namen setzen TComponent
GetName(): pchar Namen lesen TComponent
SetTag(v: int64): void Tag setzen TComponent
GetTag(): int64 Tag lesen TComponent
HasState(bits: int64): bool Sind diese Zustandsbits gesetzt TComponent
SetState(bits: int64): void Zustandsbits setzen TComponent
ClearState(bits: int64): void Zustandsbits löschen TComponent
HasParent(): bool Hängt die Komponente in einem Baum TComponent
GetParentComponent(): TComponent Übergeordnete Komponente im Baum TComponent
GetNamePath(): pchar Voller Name für Formulardateien; in Vega der Name selbst TComponent
Tick(now: int64): bool Einmal je Bild aus der Fensterschleife; true = es hat sich etwas getan, also neu zeichnen TComponent
NextDueIn(now: int64): int64 Wie lange die Schleife höchstens schlafen darf, bis diese Komponente wieder dran ist; -1 = nie von selbst TComponent

Ereignisse

Keine.

Letzte Aktualisierung: 2026-08-20 — API maschinell aus Vega/Images.lyx erhoben, Beispiel mit lyxc 1.1.3O übersetzt.

OnChange TNotifyEvent Wer sich für Änderungen der Liste interessiert — in Delphi hängen daran die Controls, die aus ihr zeichnen eigen