Använd Delphi-fil- och katalogkontroller för att efterlikna Windows Explorer

Windows Explorer är det du använder i Windows-operativsystemet för att söka efter filer och mappar. Du kan skapa en liknande struktur med Delphi så att samma innehåll fylls i programmets användargränssnitt.

Vanliga dialogrutor används i Delphi för att öppna och spara en fil i ett program. Om du vill använda anpassade filhanterare och katalogsökande dialogrutor måste du ta itu med Delphi-komponenter i filsystemet.

Palettgruppen Win 3.1 VCL innehåller flera komponenter som låter dig bygga din egen "File Open" eller "File Save" -dialogrutan: TFileListBox, TDirectoryListBox, TDriveComboBox, och TFilterComboBox.

Navigera filer

Filsystemets komponenter tillåter oss att välja en enhet, se den hierarkiska katalogstrukturen på en disk och se namnen på filerna i en given katalog. Alla filsystemkomponenter är utformade för att fungera tillsammans.

Till exempel kontrollerar din kod vad användaren har gjort för att säga en DriveComboBox och överför sedan denna information till en DirectoryListBox. Ändringarna i DirectoryListBox överförs sedan till en FileListBox där användaren kan välja den eller de filer som behövs.

Utforma dialogformuläret

Starta en ny Delphi-applikation och välj fliken Win 3.1 på komponentpaletten. Gör sedan följande:

  • Placera en TFileListBox-, TDirectoryListBox-, TDriveComboBox- och TFilterComboBox-komponent på ett formulär med alla standardnamn.
  • Lägg till en TEdit (med namnet "FileNameEdit") och en TLabel (kalla det "DirLabel").
  • Inkludera några etiketter med bildtexter, som "Filnamn", "Katalog", "Lista filer av typ" och "Enheter."

För att visa den för närvarande valda sökvägen som en sträng i en rubriktitel för DirLabel-komponenter tilldelar du etikettens namn till DirectoryListBox's DirLabel-egendom.

Om du vill visa det valda filnamnet i en EditBox (FileNameEdit), måste du tilldela Edit Object's Name (FileNameEdit) till FileListBox's FileEdit-egenskap.

Fler koder

När du har alla filsystemkomponenter på formuläret måste du bara ställa in egenskapen DirectoryListBox.Drive och FileListBox.Directory för att komponenterna ska kommunicera och visa vad användaren vill se.

När användaren till exempel väljer en ny enhet aktiverar Delphi DriveComboBox OnChange händelsehanterare. Få det att se ut så här:

 procedur TForm1.DriveComboBox1Change (avsändare: TObject);
beginDirectoryListBox1.Drive: = DriveComboBox1.Drive;
slutet;

Den här koden ändrar displayen i DirectoryListBox genom att aktivera dess OnChange händelsehanterare:

 procedur TForm1.DirectoryListBox1Change (avsändare: TObject);
beginFileListBox1.Directory: = DirectoryListBox1.Directory;
slutet;

För att se vilken fil användaren har valt måste du använda OnDblClick händelse av FileListBox: