TFileListBox — Dateien eines Verzeichnisses
Eine TListBox, die den Inhalt eines Verzeichnisses zeigt, gefiltert über eine Maske. Zusammen mit TDirectoryListBox und TDriveComboBox ergibt das die klassische Delphi-Dateiauswahl aus drei Teilen.
Unit: vega.filectrls · Basis: TListBox
→ Alle Steuerelemente · Klassenbaum · Guide: Komponenten
Vererbung
Kette: TComponent → TControl → TListBox → TFileListBox
Direkte Nachfahren: keine — diese Klasse wird nicht weiter abgeleitet.
Quelle: vega/filectrls.lyx
Verwendung
var fl: TFileListBox := new TFileListBox();
fl.SetBounds(8, 8, 200, 240);
fl.SetDirectory("/home/andreas");
fl.SetMask("*.txt;*.md");
fl.OnFileChange := DateiGewaehlt;
fl.SetParent(f);
Besonderheiten
Masknimmt mehrere Muster, durch Strichpunkt getrennt — wie in Delphi:"*.pas;*.dpr".OnFileChangemeldet den Wechsel der Auswahl, nicht das Öffnen. Was mit der Datei geschieht, entscheidet das Programm.- Verzeichniswechsel geht über
SetDirectory— oder von selbst, wenn eine TDirectoryListBox die Liste alsFileListführt.
Eigenschaften
Alle Eigenschaften, auch die geerbten.
| Name | Typ | Bedeutung | Herkunft |
|---|---|---|---|
ComponentState | int64 | Zustand als Bitmaske (csLoading, csDestroying …) | TComponent |
ComponentStyle | int64 | Stil als Bitmaske; Vorgabe csInheritable | TComponent |
Name | pchar | Name der Komponente — für FindComponent und beim Laden aus LFM | TComponent |
OwnedComponents | TObjectList | Die Komponenten, die DIESER gehoeren. Delphis Components[]. Zeigerliste, keine Kopien: TObjectList hält int64-Adressen | TComponent |
Owner | TComponent | Wer diese Komponente wegraeumt. Nicht der Elternteil im Zeichenbaum — das ist bei TControl `Parent` | TComponent |
Tag | int64 | Freier Wert für eigene Zwecke; die Bibliothek fasst ihn nicht an | TComponent |
BorderStyle | int64 | Rahmenart wie in Delphi. Vorgabe ist der vertiefte Rahmen | TListBox |
Columns | int64 | Mehrspaltig wie Delphis Columns: 0 = eine Spalte, sonst so viele Spalten nebeneinander, wie hier stehen. Die Einträge laufen dabei SPALTENWEISE von oben nach unten | TListBox |
ExtendedSelect | bool | Bei Mehrfachauswahl: Bereichsauswahl mit Umschalt, einzelne mit Strg. Aus heißt, jeder Klick schaltet nur seinen eigenen Eintrag um | TListBox |
FixedItemHeight | int64 | Feste Zeilenhoehe. 0 heißt „aus der Schrift rechnen“ — das ist die Vorgabe und war frueher der einzige Weg | TListBox |
ItemIndex | int64 | Ausgewählter Eintrag, -1 = keiner | TListBox |
Items | TStringList | Kind Nummer i | TListBox |
MultiSelect | bool | Mehrfachauswahl. Der Zustand liegt in einer eigenen Liste, nicht am Eintrag: TStringList hält Zeichenketten, keine Objekte, und ein Parallelfeld ist billiger als eine zweite Klasse je Zeile | TListBox |
Sorted | bool | Einträge beim Einfuegen einsortieren. Wie in Delphi eine Eigenschaft der Liste und nicht ein einmaliges Sortieren — sonst wäre die nächste Zeile wieder unsortiert | TListBox |
TopIndex | int64 | Erster sichtbarer Eintrag | TListBox |
Directory | TTextBuffer | Das gezeigte Verzeichnis | eigen |
Mask | TTextBuffer | Was gezeigt werden darf: „*.txt“ oder „*“. Mehrere Muster durch Strichpunkt getrennt, wie in Delphi: „*.pas;*.dpr“ | eigen |
Methoden
Alle Methoden, auch die geerbten.
| Signatur | Zweck | Herkunft |
|---|---|---|
ClearState(bits: int64): void | Zustandsbits löschen | TComponent |
ComponentCount(): int64 | Anzahl der eigenen Komponenten | TComponent |
ComponentIndex(): int64 | Delphis ComponentIndex: der eigene Platz in der Liste des Besitzers | TComponent |
Components(index: int64): TComponent | Eigene Komponente an dieser Stelle | TComponent |
Destroy(): void | Raeumt die eigene Liste ab, aber NICHT die Einträge — welche Komponenten ihre Besitztuemer mitnehmen, entscheidet die Ableitung über DestroyComponents() | TComponent |
DestroyComponents(): void | Baut die Besitztuemer ab. Von hinten, weil jedes Destroy() sich selbst aus der Liste austraegt | TComponent |
FindComponent(name: pchar): TComponent | Sucht unter den EIGENEN Komponenten, eine Ebene tief — wie in Delphi | TComponent |
GetName(): pchar | Namen lesen | TComponent |
GetNamePath(): pchar | Der eigene Name. Delphi hängt bei Unterkomponenten den des Besitzers davor; Vega hat keine, also ist es der Name selbst | TComponent |
GetTag(): int64 | Tag lesen | TComponent |
HasState(bits: int64): bool | Sind diese Zustandsbits gesetzt | TComponent |
InitComponent(): void | Kein Konstruktor: lyxc vererbt Konstruktoren nicht, jede Ableitung ruft InitComponent() im eigenen Create() | 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 |
SetName(v: pchar): void | Setzt Name | TComponent |
SetState(bits: int64): void | Zustand setzen | TComponent |
SetTag(v: int64): void | Setzt Tag | TComponent |
Add(s: pchar): int64 | Einen Eintrag aufnehmen. Mit Sorted landet er an der richtigen Stelle, sonst hinten. Liefert den Index | TListBox |
ClampTop(): void | TopIndex im gueltigen Bereich halten. Wichtig nach dem Loeschen von Einträgen, sonst zeigt die Liste ins Leere | TListBox |
Clear(): void | Delphis Name für ClearItems | TListBox |
ClearItems(): void | Alle Einträge entfernen | TListBox |
ColumnWidth(): int64 | Breite einer Spalte. Bei einer Spalte ist das die ganze Flaeche | TListBox |
Count(): int64 | Zahl der Einträge | TListBox |
Create(): void | Anlegen; new TFileListBox() | TListBox |
Delete(index: int64): void | Eintrag entfernen | TListBox |
DeleteSelected(): int64 | Alle ausgewählten Einträge löschen. Ohne Mehrfachauswahl ist das der eine aktuelle — genau wie in Delphi | TListBox |
DeselectAll(): void | Markierung aufheben | TListBox |
Destroy(): void | Gibt eigene Ressourcen frei | TListBox |
IndexAtY(y: int64): int64 | Index unter einer Pixelposition, oder VEGA_NO_ITEM | TListBox |
IsSelected(index: int64): bool | Ist dieser Eintrag ausgewählt? Heisst bewusst NICHT `Selected` — diesen Namen traegt schon die Methode, die den TEXT des gewaehlten Eintrags liefert, und in Lyx gibt es keine Überladung | TListBox |
ItemAtPos(x: int64, y: int64): int64 | Eintrag unter einem Punkt — mit Spalten reicht die Y-Position nicht | TListBox |
ItemHeight(): int64 | Höhe eines Eintrags | TListBox |
ItemRect(index: int64): TRect | Das Rechteck eines Eintrags in Control-Koordinaten. Liegt er nicht im sichtbaren Bereich, kommt ein leeres Rechteck zurück — so muss kein Aufrufer zwei Faelle unterscheiden | TListBox |
ItemVisible(index: int64): bool | Ist der Eintrag ganz zu sehen? | TListBox |
RowsPerColumn(): int64 | Zeilen je Spalte — bei einer Spalte alle sichtbaren Zeilen | TListBox |
ScrollToItem(i: int64): void | Den Ausschnitt so verschieben, dass der Eintrag sichtbar ist | TListBox |
SelCount(): int64 | Zahl der markierten Einträge | TListBox |
SelectAll(): void | Alles auswählen | TListBox |
SelectRange(a: int64, b: int64, exklusiv: bool): void | Bereich auswaehlen (Umschalt-Klick). Alles außerhalb wird abgewaehlt, wie es Delphi mit ExtendedSelect macht | TListBox |
Selected(): pchar | Die gewählte Farbe | TListBox |
SetBorderStyle(v: int64): void | Setzt BorderStyle | TListBox |
SetColumns(v: int64): void | Setzt Columns | TListBox |
SetItemHeight(v: int64): void | Setzt die feste Zeilenhöhe | TListBox |
SetItemSelected(index: int64, v: bool): void | Markierung setzen | TListBox |
SetMultiSelect(v: bool): void | Setzt MultiSelect | TListBox |
SetSorted(v: bool): void | Nachtraeglich sortieren — und ab jetzt sortiert halten | TListBox |
VisibleCount(): int64 | Wieviele Einträge gleichzeitig zu sehen sind — mit Spalten das Vielfache davon | TListBox |
Create(): void | Anlegen; new TFileListBox() | eigen |
Destroy(): void | Gibt eigene Ressourcen frei | eigen |
FileName(): pchar | Der gewaehlte Dateiname ohne Pfad, oder ein Leerstring | eigen |
FullPath(dst: TTextBuffer): void | Der vollständige Pfad. In einen Puffer, weil er zusammengesetzt wird und ein zurückgegebener Zeiger auf Zwischenspeicher zeigte | eigen |
Refresh_(): void | Die Liste neu einlesen. Heisst in Delphi `Update`; das wäre hier der Name einer geerbten Methode, die sofort zeichnet | eigen |
SetDirectory(path: pchar): void | Setzt Directory | eigen |
SetMask(m: pchar): void | Setzt Mask | eigen |
Ereignisse
| Name | Typ | Wann | Herkunft |
|---|---|---|---|
OnDrawItem | TDrawItemEvent | Selbst gezeichnete Zeilen. 0 = die Vorgabe zeichnet | TListBox |
OnSelect | TNotifyEvent | Ein Eintrag wurde ausgewählt | TListBox |
OnFileChange | TNotifyEvent | Meldet sich, wenn ein anderer Eintrag gewaehlt wurde | eigen |
Letzte Aktualisierung: 2026-09-05 — Seite neu angelegt; erhoben aus vega/filectrls.lyx im Repo lyx-vcl.
