Tech-Ecke / Delphi Inhalt / TOpenDialog

 

     TOpenDialog (TFileSaveDialog)

 

   Grundlegendes

Mit der Komponente TOpenDialog und TSaveDialog liest man prinzipiell nur den Dateinamen + Pfad der ausgewählten bzw. zu speichernden Datei in ein String ein, um in dann im weiteren verlauf des Programms zu verwenden. Dazu zieht man die TOpenDialog bzw. TSaveDialog Komponente auf das Form, dann noch ein TButton und hinterlegt folgende Zeilen auf ein Click-Event des TButton:

   

var
Datei:  String;

if OpenDialog1.Execute then // bzw. if SaveDialog1.Execute then...
   begin
      Datei := OpenDialog1.FileName; // bla SaveDialog bla... ab hier spar ich mir den Mist
      ShowMessage('gewählte Datei: ' + Datei);
      {mach irgend was}
   end
else
   ShowMessage('nix ausgewählt...'); // oder einfach nur exit;

 

   Nur den Pfad zur Datei auslesen ( var Pfad: String;)

   if OpenDialog1.Execute then Pfad := ExtractFileDir(OpenDialog1.FileName);
 

   Nur Dateiname + Endung auslesen ( var Pfad: String;)

   if OpenDialog1.Execute then Pfad := ExtractFileName(OpenDialog1.FileName);
 

Dateiendung (Extension) aus Dateiname extrahieren

   ExtractFileExt('text.txt'); // Ergebnis wird txt sein
 

Dateiendung tauschen bzw. entfernen

   ChangeFileExt('text.txt','.bmp'); // Ergebnis wird test.bmp sein

 ChangeFileExt('text.txt',''); // Ergebnis wird test sein, also keine Endung mehr

 

   Filter für Dateinamen setzen ( var Datei: String;) (aus Programm heraus)

   OpenDialog1.Filter := ('Datei | Datei.txt');   // mehrere Filter ('Textdatei | *.txt; *.doc  | Bilder  | *.bmp; *.jpg')
        if OpenDialog1.Execute then Datei := OpenDialog1.FileName;
 

   Beim Datei Öffnen-Dialog nicht das gewählte Verzeichnis als aktuell setzten:

        Im Objektinspektor die Option „ofNoChangeDir“ auf true setzen

   Beim Datei-Öffnen-Dialog ein Verzeichnis vorab als aktuell setzten:

   OpenDialog1.InitialDir := ('B:\work'); // direkt vor  if OpenDialog1.Execute then...
 

"Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !"

[letzte Aktualisierung 26.10.2007]