Come utilizzare Delphi per creare un Explorer di Windows personalizzato

Windows Explorer è quello che usi nel sistema operativo Windows per cercare file e cartelle. È possibile creare una struttura simile con Delphi in modo che lo stesso contenuto sia popolato nell'interfaccia utente del programma.

Le finestre di dialogo comuni sono utilizzate in Delphi a aprire e salvare un file in un'applicazione. Se si desidera utilizzare i file manager personalizzati e le finestre di dialogo di esplorazione delle directory, è necessario gestire i componenti Delphi del file system.

Il gruppo di palette VCL Win 3.1 include diversi componenti che consentono di creare la finestra di dialogo "Apri file" o "Salva file" personalizzata: TFileListBox, TDirectoryListBox, TDriveComboBox, e TFilterComboBox.

Navigazione dei file

I componenti del file system ci consentono di selezionare un'unità, vedere la struttura gerarchica della directory di un disco e vedere i nomi dei file in una determinata directory. Tutti i componenti del file system sono progettati per funzionare insieme.

Ad esempio, il codice controlla ciò che l'utente ha fatto, ad esempio, un DriveComboBox e quindi passa queste informazioni a un DirectoryListBox. Le modifiche in DirectoryListBox vengono quindi passate a FileListBox in cui l'utente può selezionare i file necessari.

instagram viewer

Progettazione del modulo di dialogo

Ricominciare Applicazione Delphi e selezionare la scheda Win 3.1 di Tavolozza dei componenti. Quindi procedi come segue:

  • Inserire un componente TFileListBox, TDirectoryListBox, TDriveComboBox e TFilterComboBox su un modulo, mantenendo tutti i nomi predefiniti
  • Aggiungi un TEdit (chiamato "FileNameEdit") e uno TLabel (chiamalo "DirLabel").
  • Includi alcune etichette con didascalie, come "Nome file", "Directory", "Elenco file di tipo" e "Unità".

Per mostrare il percorso attualmente selezionato come stringa in una didascalia dei componenti DirLabel, assegnare il nome dell'etichetta a DirectoryListBox's Proprietà DirLabel.

Se si desidera visualizzare il nome file selezionato in un EditBox (FileNameEdit), è necessario assegnare il nome dell'oggetto Modifica (FileNameEdit) al FileListBox Proprietà FileEdit.

Altre righe di codice

Quando nel modulo sono presenti tutti i componenti del file system, è sufficiente impostare DirectoryListBox. Proprietà dell'unità e FileListBox. Proprietà della directory per consentire ai componenti di comunicare e mostrare ciò che l'utente vuole vedere.

Ad esempio, quando l'utente seleziona una nuova unità, Delphi attiva il DriveComboBox OnChange gestore di eventi. Fallo in questo modo:

 procedura TForm1.DriveComboBox1Change (Mittente: TObject);
beginDirectoryListBox1.Drive: = DriveComboBox1.Drive;
fine;

Questo codice cambia la visualizzazione in DirectoryListBox attivando il suo OnChange gestore di eventi:

 procedura TForm1.DirectoryListBox1Change (Sender: TObject);
beginFileListBox1.Directory: = DirectoryListBox1.Directory;
fine;

Per vedere quale file è stato selezionato dall'utente, è necessario utilizzare il file OnDblClick evento del FileListBox:

 procedura TForm1.FileListBox1DblClick (Mittente: TObject);
beginShowmessage ('Selected:' + FileListBox1.FileName);
fine;

Ricorda che la convenzione di Windows prevede che un doppio clic scelga il file, non un singolo clic. Questo è importante quando lavori con un FileListBox perché l'uso di un tasto freccia per spostarti in un FileListBox chiamerebbe qualsiasi gestore OnClick che hai scritto.

Filtraggio del display

Utilizzare un FilterComboBox per controllare il tipo di file visualizzati in un FileListBox. Dopo aver impostato la proprietà FileList di FilterComboBox sul nome di FileListBox, impostare la proprietà Filter sui tipi di file che si desidera visualizzare.

Ecco un filtro di esempio:

 FilterComboBox1.Filter: = 'Tutti i file (*. *) | *. * | File di progetto (* .dpr) | * .dpr | Unità Pascal (* .pas) | * .pas ';

Suggerimenti e consigli

Impostazione di DirectoryListBox. Proprietà dell'unità e FileListBox. La proprietà della directory (nei gestori di eventi OnChange precedentemente scritti) in fase di esecuzione può essere eseguita anche in fase di progettazione. È possibile realizzare questo tipo di connessione in fase di progettazione impostando le seguenti proprietà (dalla finestra di ispezione oggetti):

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

Gli utenti possono selezionare più file in un FileListBox se la sua proprietà MultiSelect è True. Il codice seguente mostra come creare un elenco di selezioni multiple in un FileListBox e mostrarlo in un SimpleListBox (un controllo ListBox "normale").

 var k: numero intero; ...
con FileListBox1 do
se SelCount> 0 allora
per k: = 0 per gli articoli. Count-1 do
se selezionato [k] allora
SimpleListBox. Elementi. Aggiungi (elementi [k]);

Per visualizzare nomi di percorso completi che non sono abbreviati con i puntini di sospensione, non assegnare un nome di oggetto Label alla proprietà DirLabel di DirectoryListBox. Invece, inserire un'etichetta in un modulo e impostare la proprietà caption nell'evento OnChange di DirectoryListBox su DirectoryListBox. Proprietà directory.

instagram story viewer