Computerwissenschaften

Verwenden von Delphi zum Erstellen eines benutzerdefinierten Windows-Explorers

Windows Explorer ist das, was Sie im Windows-Betriebssystem verwenden, um nach Dateien und Ordnern zu suchen. Sie können mit Delphi eine ähnliche Struktur erstellen, sodass derselbe Inhalt auf der Benutzeroberfläche Ihres Programms angezeigt wird.

In Delphi werden allgemeine Dialogfelder verwendet, um eine Datei in einer Anwendung zu öffnen und zu speichern. Wenn Sie angepasste Dateimanager und Dialogfelder zum Durchsuchen von Verzeichnissen verwenden möchten, müssen Sie sich mit Delphi-Komponenten des Dateisystems befassen.

Die Win 3.1 VCL-Palettengruppe enthält mehrere Komponenten, mit denen Sie Ihr eigenes benutzerdefiniertes Dialogfeld „Datei öffnen“ oder „Datei speichern“ erstellen können : TFileListBox , TDirectoryListBox , TDriveComboBox und TFilterComboBox .

 

Dateien navigieren

Mit den Dateisystemkomponenten können wir ein Laufwerk auswählen, die hierarchische Verzeichnisstruktur einer Festplatte anzeigen und die Namen der Dateien in einem bestimmten Verzeichnis anzeigen. Alle Dateisystemkomponenten arbeiten zusammen.

Ihr Code überprüft beispielsweise, was der Benutzer beispielsweise mit einer DriveComboBox getan hat, und leitet diese Informationen dann an eine DirectoryListBox weiter. Die Änderungen in DirectoryListBox werden dann an eine FileListBox übergeben, in der der Benutzer die benötigten Dateien auswählen kann.

 

Entwerfen des Dialogformulars

Starten Sie eine neue Delphi-Anwendung und wählen Sie die Registerkarte Win 3.1 der Komponentenpalette. Dann machen Sie folgendes:

  • Platzieren Sie eine TFileListBox-, TDirectoryListBox-, TDriveComboBox- und TFilterComboBox-Komponente in einem Formular, wobei alle Standardnamen beibehalten werden
  • Fügen Sie ein TEdit (mit dem Namen „FileNameEdit“) und ein TLabel (mit dem Namen „DirLabel“ bezeichnet) hinzu.
  • Fügen Sie einige Beschriftungen mit Beschriftungen hinzu, z. B. „Dateiname“, „Verzeichnis“, „Dateityp auflisten“ und „Laufwerke“.

Um den aktuell ausgewählten Pfad als Zeichenfolge in einer DirLabel-Komponentenbeschriftung anzuzeigen, weisen Sie der DirLabel-Eigenschaft von DirectoryListBox den Namen des Labels zu .

Wenn Sie den ausgewählten Dateinamen in einer EditBox (FileNameEdit) anzeigen möchten, müssen Sie der FileEdit- Eigenschaft der FileListBox den Namen des Edit-Objekts (FileNameEdit) zuweisen .

 

Weitere Codezeilen

Wenn Sie alle Dateisystemkomponenten im Formular haben, müssen Sie nur die DirectoryListBox.Drive-Eigenschaft und die FileListBox.Directory-Eigenschaft festlegen, damit die Komponenten kommunizieren und zeigen, was der Benutzer sehen möchte.

Wenn der Benutzer beispielsweise ein neues Laufwerk auswählt, aktiviert Delphi die Ereignisbehandlungsroutine DriveComboBox OnChange . Lass es so aussehen:

 Prozedur TForm1.DriveComboBox1Change (Absender: TObject); 
beginDirectoryListBox1.Drive:=DriveComboBox1.Drive; 
Ende;

Dieser Code ändert die Anzeige in der DirectoryListBox durch Aktivieren des OnChange- Ereignishandlers:

 procedure TForm1.DirectoryListBox1Change (Sender: TObject); 
beginFileListBox1.Directory:=DirectoryListBox1.Directory; 
Ende;

Um zu sehen, welche Datei der Benutzer ausgewählt hat, müssen Sie das OnDblClick- Ereignis der FileListBox verwenden :

 Prozedur TForm1.FileListBox1DblClick (Absender: TObject); 
beginShowmessage ('Ausgewählt:' + FileListBox1.FileName); 
Ende;

Denken Sie daran, dass die Windows-Konvention darin besteht, dass Sie die Datei mit einem Doppelklick auswählen und nicht mit einem einzigen Klick. Dies ist wichtig, wenn Sie mit einer FileListBox arbeiten, da die Verwendung einer Pfeiltaste zum Durchlaufen einer FileListBox jeden von Ihnen geschriebenen OnClick-Handler aufruft.

 

Anzeige filtern

Verwenden Sie eine FilterComboBox, um den Dateityp zu steuern, der in einer FileListBox angezeigt wird. Nachdem Sie die FileList-Eigenschaft der FilterComboBox auf den Namen einer FileListBox festgelegt haben, legen Sie die Filter-Eigenschaft auf die anzuzeigenden Dateitypen fest.

Hier ist ein Beispielfilter:

 FilterComboBox1.Filter:='Alle Dateien (*. *) | *. * | Projektdateien (* .dpr) | * .dpr | Pascal-Einheiten (* .pas) | * .pas ';

 

Hinweise und Tipps

Das Festlegen der DirectoryListBox.Drive-Eigenschaft und der FileListBox.Directory-Eigenschaft (in den zuvor geschriebenen OnChange-Ereignishandlern) zur Laufzeit kann auch zur Entwurfszeit erfolgen. Sie können diese Art der Verbindung zur Entwurfszeit herstellen, indem Sie die folgenden Eigenschaften festlegen (im Objektinspektor):

DriveComboBox1.DirList:=DirectoryListBox1 
DirectoryListBox1.FileList:=FileListBox1

Benutzer können mehrere Dateien in einer FileListBox auswählen, wenn die MultiSelect-Eigenschaft True ist. Der folgende Code zeigt, wie Sie eine Liste mit mehreren Auswahlen in einer FileListBox erstellen und in einer SimpleListBox (einem „normalen“ ListBox-Steuerelement) anzeigen.

 var k: integer; ... 
mit FileListBox1 do 
wenn SelCount> 0 dann 
für k:=0 bis Items.Count-1 do 
wenn Selected [k] dann 
SimpleListBox.Items.Add (Items [k]);

Weisen Sie der DirLabel-Eigenschaft einer DirectoryListBox keinen Label-Objektnamen zu, um vollständige Pfadnamen anzuzeigen, die nicht mit Auslassungspunkten gekürzt sind. Fügen Sie stattdessen eine Beschriftung in ein Formular ein und setzen Sie die Beschriftungseigenschaft im OnChange-Ereignis der DirectoryListBox auf die DirectoryListBox.Directory-Eigenschaft.

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.