Hoe Delphi te gebruiken om een ​​aangepaste Windows Verkenner te bouwen

click fraud protection

Windows Verkenner 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.

In Delphi worden algemene dialoogvensters gebruikt open en sla een bestand op in een applicatie. Als u aangepaste bestandsbeheerders en dialoogvensters voor het bladeren door mappen wilt gebruiken, heeft u te maken 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.

Navigeren door bestanden

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

instagram viewer

Uw code controleert bijvoorbeeld wat de gebruiker heeft gedaan aan 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 de gewenste bestanden kan selecteren.

Het ontwerpen van het dialoogvenster

Opnieuw beginnen Delphi-applicatie en selecteer het tabblad Win 3.1 van de Component palet. Doe dan het volgende:

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

Om het momenteel geselecteerde pad als een tekenreeks in een bijschrift van DirLabel-componenten weer te geven, 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's toewijzen FileEdit-eigenschap.

Meer regels code

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

Als 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 haar 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 gebruiken OnDblClick evenement van de FileListBox:

 procedure TForm1.FileListBox1DblClick (Sender: TObject);
beginShowmessage ('Geselecteerd:' + FileListBox1.FileName);
einde;

Onthoud dat de Windows-conventie is om een ​​dubbelklik te hebben, het bestand te kiezen, niet een enkele klik. Dit is belangrijk wanneer u met een FileListBox werkt, omdat het gebruik van een pijltoets om door een FileListBox te bladeren elke OnClick-handler zou aanroepen die u hebt geschreven.

Het scherm filteren

Gebruik een FilterComboBox om het type bestanden te beheren dat wordt weergegeven in een FileListBox. Nadat u de FileList-eigenschap van FilterComboBox hebt ingesteld op de naam van een FileListBox, stelt u de eigenschap Filter in op de bestandstypen die u wilt weergeven.

Hier is een voorbeeldfilter:

 FilterComboBox1.Filter: = 'Alle bestanden (*. *) | *. * | Projectbestanden (* .dpr) | * .dpr | Pascal-eenheden (* .pas) | * .pas ';

Hints en tips

De DirectoryListBox instellen. Drive-eigenschap en de FileListBox. Directoryeigenschap (in de eerder geschreven OnChange-eventhandlers) tijdens runtime kan ook worden gedaan tijdens het ontwerpen. U kunt dit soort verbinding tot stand brengen tijdens het ontwerpen door de volgende eigenschappen in te stellen (vanuit Object Inspector):

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

Gebruikers kunnen meerdere bestanden in een FileListBox selecteren als de MultiSelect-eigenschap True is. De volgende code laat zien hoe u een lijst met meerdere selecties in een FileListBox maakt en deze weergeeft in een SimpleListBox (een of ander "gewoon" ListBox-besturingselement).

 var k: geheel getal; ...
met FileListBox1 doen
als SelCount> 0 dan
voor k: = 0 tot items. Count-1 doen
indien geselecteerd [k] dan
SimpleListBox. Artikelen. Toevoegen (items [k]);

Om volledige padnamen weer te geven die niet zijn ingekort met een ellips, mag u geen Label-objectnaam toewijzen aan de eigenschap DirLabel van een DirectoryListBox. Voeg in plaats daarvan een label in een formulier in en stel de bijschrifteigenschap in de OnChange-gebeurtenis van DirectoryListBox in op DirectoryListBox. Directory eigenschap.

instagram story viewer