Gebruik Delphi Bestands- en mapbesturing om Windows Explorer na te bootsen

Windows Explorer is wat u in het Windows-besturingssysteem gebruikt om naar bestanden en mappen te bladeren. U kunt een vergelijkbare structuur maken met Delphi zodat dezelfde inhoud wordt ingevuld in de gebruikersinterface van uw programma.

Algemene dialoogvensters worden in Delphi gebruikt om een ​​bestand in een toepassing te openen en op te slaan. Als u aangepaste bestandsbeheerders en mapzoekdialoogvensters wilt gebruiken, moet u te maken hebben met Delphi-componenten van het bestandssysteem.

De Win 3.1 VCL-paletgroep bevat verschillende componenten waarmee u uw eigen aangepaste dialoogvenster "Bestand openen" of "Bestand opslaan" kunt bouwen: TFileListBox, TDirectoryListBox, TDriveComboBox, en TFilterComboBox.

Door bestanden navigeren

Met de bestandssysteemcomponenten kunnen we een schijf selecteren, de hiërarchische mapstructuur van een schijf bekijken en de namen van de bestanden in een bepaalde map bekijken. Alle bestandssysteemcomponenten zijn ontworpen om samen te werken.

Uw code controleert bijvoorbeeld wat de gebruiker heeft gedaan, bijvoorbeeld een DriveComboBox en geeft deze informatie vervolgens door aan een DirectoryListBox. De wijzigingen in DirectoryListBox worden vervolgens doorgegeven aan een FileListBox waarin de gebruiker het benodigde bestand (en) kan selecteren.

Het dialoogformulier ontwerpen

Start een nieuwe Delphi-toepassing en selecteer het tabblad Win 3.1 van het componentenpalet. Doe dan het volgende:

  • Plaats een TFileListBox, TDirectoryListBox, TDriveComboBox en TFilterComboBox in een formulier, met behoud van al hun standaardnamen
  • Voeg één TEdit (genaamd "FileNameEdit") en één TLabel toe (noem het "DirLabel").
  • Voeg een paar labels met bijschriften toe, zoals 'Bestandsnaam', 'Directory', 'Lijst met type bestanden' en 'Stations'.

Om het momenteel geselecteerde pad als een tekenreeks in een bijschrift van de DirLabel-componenten te tonen, wijst u de naam van het label toe aan de DirectoryListBox's DirLabel eigenschap.

Als u de geselecteerde bestandsnaam in een EditBox (FileNameEdit) wilt weergeven, moet u de naam van het Edit-object (FileNameEdit) aan de FileListBox toewijzen FileEdit-eigenschap.

Meer regels code

Wanneer u alle bestandssysteemcomponenten op het formulier hebt, hoeft u alleen de eigenschap DirectoryListBox.Drive en de eigenschap FileListBox.Directory in te stellen zodat de componenten kunnen communiceren en laten zien wat de gebruiker wil zien.

Wanneer de gebruiker bijvoorbeeld een nieuwe schijf selecteert, activeert Delphi de DriveComboBox OnChange event handler. Laat het er zo uitzien:

 procedure TForm1.DriveComboBox1Change (Afzender: TObject);
beginDirectoryListBox1.Drive: = DriveComboBox1.Drive;
einde;

Deze code verandert de weergave in de DirectoryListBox door het te activeren OnChange event Handler:

 procedure TForm1.DirectoryListBox1Change (afzender: TObject);
beginFileListBox1.Directory: = DirectoryListBox1.Directory;
einde;

Om te zien welk bestand de gebruiker heeft geselecteerd, moet u de OnDblClick evenement van de FileListBox: