TDirectoryListBox — Verzeichnisse als Liste

Eine TListBox mit den Unterverzeichnissen des aktuellen Ordners. Sie kann eine TFileListBox mitführen, die beim Wechsel automatisch nachzieht.

Unit: vega.filectrls · Basis: TListBox

Alle Steuerelemente · Klassenbaum · Guide: Komponenten


Vererbung

Kette: TComponentTControlTListBoxTDirectoryListBox

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

Quelle: vega/filectrls.lyx


Verwendung

var dl: TDirectoryListBox := new TDirectoryListBox();
dl.SetBounds(8, 8, 200, 240);
dl.SetDirectory("/home/andreas");
dl.FileList := dateiliste;          // wandert mit
dl.OnDirChange := OrdnerGewechselt;
dl.SetParent(f);


Besonderheiten

  • FileList ist die Kopplung: ist sie gesetzt, bekommt die Dateiliste bei jedem Verzeichniswechsel das neue Verzeichnis. 0 heißt: keine.
  • OnDirChange feuert nach dem Wechsel — die neue Lage steht dann schon in Directory.

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 im Feld stehende Verzeichnis eigen
FileList TFileListBox Die Dateiliste, die mitwandert. 0 heißt: keine 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 TDirectoryListBox() 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 TDirectoryListBox() eigen
Destroy(): void Gibt eigene Ressourcen frei eigen
OpenSelected(): bool In den gewaehlten Eintrag wechseln. „..“ führt nach oben eigen
Refresh_(): void Zeichnet neu eigen
SetDirectory(path: pchar): void Setzt Directory eigen
SetFileList(fl: TFileListBox): void Setzt FileList eigen

Ereignisse

Name Typ Wann Herkunft
OnDrawItem TDrawItemEvent Selbst gezeichnete Zeilen. 0 = die Vorgabe zeichnet TListBox
OnSelect TNotifyEvent Ein Eintrag wurde ausgewählt TListBox
OnDirChange TNotifyEvent Das Verzeichnis wurde gewechselt eigen

Letzte Aktualisierung: 2026-09-05 — Seite neu angelegt; erhoben aus vega/filectrls.lyx im Repo lyx-vcl.