TFileDialog — Grundlage der Dateidialoge

Die gemeinsame Grundlage von TOpenDialog, TSaveDialog und TSelectDirectoryDialog: Verzeichnisliste, Namensfeld, Filter und das modale Zeigen. Unmittelbar benutzt wird sie selten — man nimmt eine der drei Ableitungen, die sich nur in Mode und den Vorgaben unterscheiden.

Unit: vega.filedlg · Basis: keine — eigene Wurzel

Alle Steuerelemente · Klassenbaum · Guide: Komponenten


Vererbung

Kette: TFileDialog — eigene Wurzel, kein Vorfahr. Was diese Klasse kann, steht vollständig auf dieser Seite.

Direkte Nachfahren: TOpenDialog · TSaveDialog · TSelectDirectoryDialog

Quelle: vega/filedlg.lyx


Verwendung

Ein Dateidialog wird angelegt, eingestellt und mit Execute gezeigt. Er ist modal: der Aufruf kehrt erst zurück, wenn der Benutzer bestätigt oder abgebrochen hat.

var dlg: TOpenDialog := new TOpenDialog();
dlg.SetFilter("*.txt;*.md;*.lyx");
dlg.SetTitle("Textdatei oeffnen");
dlg.SetInitialDir("/home/andreas");

if (dlg.Execute(app)) {
    var voll: TTextBuffer := new TTextBuffer();
    dlg.FullPath(voll);              // Verzeichnis + Dateiname
    // ... Datei laden ...
    voll.Destroy();
}
dlg.Destroy();

Execute liefert true bei Bestätigung und false bei Abbruch. Das Ergebnis steht danach in FileName (nur der Name) bzw. vollständig über FullPath; das Verzeichnis liefert Directory.


Besonderheiten

  • Kein Systemdialog. Vega zeichnet den Dialog selbst — dieselbe Entscheidung wie beim Rest der Bibliothek: GTK, Windows und macOS zeigen jeweils einen ganz anderen Dialog, und „überall gleich„ war der Zweck der Übung. Unter LyxOS gäbe es ohnehin keinen, den man bestellen könnte.
  • Aufbau aus gewöhnlichen Steuerelementen. Der Dialog ist ein TForm mit Pfadzeile, TListView, Namensfeld und Filterauswahl, gezeigt über TApplication.ShowModal. Wer den Aufbau verstehen will, liest _BuildForm in der Quelle.
  • Bedienung: Doppelklick oder Eingabetaste öffnet ein Verzeichnis bzw. bestätigt eine Datei, .. führt nach oben.
  • Filter ist ein Muster wie in Delphi, mehrere durch Semikolon getrennt: "*.txt;*.md". Vorgabe ist "*".
  • DefaultExt wird angehängt, wenn der eingegebene Name keine Endung hat — mit führendem Punkt angeben.
  • OverwritePrompt fragt beim Sichern nach, wenn die Datei schon existiert. Bei TSaveDialog ist das die Vorgabe, bei den beiden anderen nicht.

Eigenschaften

Alle Eigenschaften, auch die geerbten.

Name Typ Bedeutung Herkunft
DefaultExt TTextBuffer Wird angehängt, wenn der Name keine Endung hat. Mit führendem Punkt eigen
FileName TTextBuffer Vor dem Aufruf der Vorschlag, danach das Ergebnis eigen
Filter TTextBuffer Muster wie in Delphi, mehrere mit Semikolon: „*.txt;*.md“ eigen
InitialDir TTextBuffer Startverzeichnis. Leer heißt: das aktuelle Arbeitsverzeichnis eigen
Mode int64 Betriebsart des Dialogs (FD_OPEN, FD_SAVE, FD_DIR) eigen
OverwritePrompt bool Beim Sichern nachfragen, wenn die Datei schon da ist eigen
Title TTextBuffer Titelzeile des Dialogs eigen

Methoden

Alle Methoden, auch die geerbten.

Signatur Zweck Herkunft
AcceptSelection(): bool Die gewaehlte Zeile übernehmen: Verzeichnis betreten oder Namen ins Feld schreiben. Liefert true, wenn der Dialog fertig ist eigen
Confirm(app: TApplication): void Der Bestaetigen-Weg, gemeinsam für Knopf und Eingabetaste eigen
Create(mode: int64): void Anlegen; new TFileDialog() eigen
CurrentDir(): pchar Verzeichnis, in dem der Dialog gerade steht eigen
Destroy(): void Gibt eigene Ressourcen frei eigen
Directory(): pchar Das gewaehlte Verzeichnis. Im Verzeichnismodus dasselbe wie FileName, sonst das Verzeichnis, in dem die gewaehlte Datei liegt eigen
Execute(app: TApplication): bool Zeigt den Dialog und kehrt erst zurück, wenn eine Entscheidung gefallen ist. true = eine Datei wurde gewaehlt, FileName traegt sie eigen
FullPath(dst: TTextBuffer): void Der vollständige Pfad des Ergebnisses eigen
GoUp(): void Eine Ebene nach oben eigen
Navigate(path: pchar): void Wechselt in das Verzeichnis path eigen
Refill(): void Die Liste neu aus dem Dateisystem fuellen eigen
SetDefaultExt(s: pchar): void Setzt DefaultExt eigen
SetFileName(s: pchar): void Setzt FileName eigen
SetFilter(s: pchar): void Setzt Filter eigen
SetInitialDir(s: pchar): void Setzt InitialDir eigen
SetTitle(s: pchar): void Setzt Title eigen

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