Η Εξερεύνηση των Windows είναι αυτή που χρησιμοποιείτε στο λειτουργικό σύστημα Windows για να αναζητήσετε αρχεία και φακέλους. Μπορείτε να δημιουργήσετε μια παρόμοια δομή με τους Δελφούς έτσι ώστε το ίδιο περιεχόμενο να συμπυκνωθεί στο περιβάλλον εργασίας του προγράμματος σας.
Κοινά παράθυρα διαλόγου χρησιμοποιούνται στους Δελφούς ανοίξτε και αποθηκεύστε ένα αρχείο σε μια εφαρμογή. Αν θέλετε να χρησιμοποιήσετε προσαρμοσμένους διαχειριστές αρχείων και διαλόγους περιήγησης καταλόγων, θα πρέπει να ασχοληθείτε με τα αρχεία Delphi του συστήματος αρχείων.
Η ομάδα παλέτων Win 3.1 VCL περιλαμβάνει πολλά στοιχεία που σας επιτρέπουν να δημιουργήσετε το δικό σας αρχείο διαλόγου "File Open" ή "File Save": TFileListBox, TDirectoryListBox, TDriveComboBox, και TFilterComboBox.
Πλοήγηση αρχείων
Τα συστατικά του συστήματος αρχείων μας επιτρέπουν να επιλέξουμε μια μονάδα δίσκου, να δούμε τη δομή ιεραρχικού καταλόγου ενός δίσκου και να δούμε τα ονόματα των αρχείων σε έναν συγκεκριμένο κατάλογο. Όλα τα στοιχεία του συστήματος αρχείων έχουν σχεδιαστεί για να συνεργάζονται.
Για παράδειγμα, ο κώδικας ελέγχει τι έχει κάνει ο χρήστης, για παράδειγμα, ένα DriveComboBox και στη συνέχεια διαβιβάζει αυτές τις πληροφορίες σε ένα DirectoryListBox. Οι αλλαγές στο DirectoryListBox μεταφέρονται στη συνέχεια σε ένα FileListBox στο οποίο ο χρήστης μπορεί να επιλέξει τα αρχεία που απαιτούνται.
Σχεδίαση της φόρμας διαλόγου
Ξεκινήστε ένα νέο Εφαρμογή Delphi και επιλέξτε την καρτέλα Win 3.1 του Παλέτα στοιχείων. Στη συνέχεια, κάντε τα εξής:
- Τοποθετήστε ένα στοιχείο TFileListBox, TDirectoryListBox, TDriveComboBox και TFilterComboBox σε μια φόρμα, διατηρώντας όλα τα προεπιλεγμένα ονόματα
- Προσθέστε ένα TEdit (με το όνομα "FileNameEdit") και ένα TLabel (ονομάστε "DirLabel").
- Συμπεριλάβετε μερικές ετικέτες με λεζάντες, όπως "Όνομα αρχείου", "Κατάλογος", "Λίστα αρχείων τύπου" και "Δίσκοι".
Για να εμφανίσετε την τρέχουσα επιλεγμένη διαδρομή ως συμβολοσειρά σε μια λεζάντα συστατικών στοιχείων DirLabel, αντιστοιχίστε το όνομα της ετικέτας στο αρχείο καταλόγου του DirectoryListBox Ιδιότητα DirLabel.
Αν θέλετε να εμφανίσετε το επιλεγμένο όνομα αρχείου σε ένα EditBox (FileNameEdit), πρέπει να αντιστοιχίσετε το όνομα του αντικειμένου Edit (FileNameEdit) στο αρχείο του FileListBox PropertyEdit.
Περισσότερες γραμμές κώδικα
Όταν έχετε όλα τα στοιχεία του συστήματος αρχείων στη φόρμα, απλά πρέπει να ορίσετε το DirectoryListBox. Ιδιότητα Drive και το FileListBox. Ιδιότητα καταλόγου για να επικοινωνήσουν τα στοιχεία και να δείξουν τι θέλει να δει ο χρήστης.
Για παράδειγμα, όταν ο χρήστης επιλέξει μια νέα μονάδα, ο Delphi ενεργοποιεί το DriveComboBox OnChange χειριστής συμβάντων. Φροντίστε να μοιάζει με αυτό:
διαδικασία TForm1.DriveComboBox1Change (αποστολέας: TObject);
beginDirectoryListBox1.Drive: = DriveComboBox1.Drive;
τέλος;
Αυτός ο κώδικας αλλάζει την εμφάνιση στο ΚατάλογοςListBox ενεργοποιώντας το OnChange χειριστής συμβάντων:
διαδικασία TForm1.DirectoryListBox1Change (αποστολέας: TObject);
beginFileListBox1.Directory: = DirectoryListBox1.Directory;
τέλος;
Για να δείτε τι αρχείο έχει επιλέξει ο χρήστης, πρέπει να χρησιμοποιήσετε το OnDblClick γεγονός της FileListBox:
διαδικασία TForm1.FileListBox1DblClick (αποστολέας: TObject);
startShowmessage ('Επιλεγμένο:' + FileListBox1.FileName);
τέλος;
Θυμηθείτε ότι η σύμβαση των Windows είναι να κάνετε διπλό κλικ επιλέξτε το αρχείο και όχι ένα μόνο κλικ. Αυτό είναι σημαντικό όταν εργάζεστε με ένα FileListBox επειδή χρησιμοποιώντας ένα πλήκτρο βέλους για να μετακινηθείτε μέσω ενός FileListBox θα καλέσετε οποιονδήποτε χειριστή OnClick που έχετε γράψει.
Φιλτράρισμα της οθόνης
Χρησιμοποιήστε ένα FilterComboBox για να ελέγξετε τον τύπο των αρχείων που εμφανίζονται σε ένα FileListBox. Αφού ορίσετε την ιδιότητα FileList του FilterComboBox στο όνομα ενός FileListBox, ορίστε την ιδιότητα Φίλτρο στους τύπους αρχείων που θέλετε να εμφανίσετε.
Ακολουθεί ένα φίλτρο δείγματος:
FilterComboBox1.Filter: = 'Όλα τα αρχεία (*. *) | *. * | Αρχεία έργου (* .dpr) | * .dpr | Μονάδες Pascal (* .pas) | * .pas ';
Συμβουλές και συμβουλές
Ρύθμιση του καταλόγου DirectoryListBox. Ιδιότητα Drive και το FileListBox. Η ιδιότητα καταλόγου (στους προηγούμενους χειριστές συμβάντων OnChange) κατά το χρόνο εκτέλεσης μπορεί επίσης να γίνει κατά το σχεδιασμό. Μπορείτε να πραγματοποιήσετε αυτό το είδος σύνδεσης κατά το σχεδιασμό, ρυθμίζοντας τις παρακάτω ιδιότητες (από τον Επιθεωρητή αντικειμένων):
DriveComboBox1.DirList: = ΚατάλογοςListBox1
ΚατάλογοςListBox1.FileList: = FileListBox1
Οι χρήστες μπορούν να επιλέξουν πολλά αρχεία σε ένα FileListBox εάν η ιδιότητα MultiSelect είναι True. Ο παρακάτω κώδικας δείχνει τον τρόπο δημιουργίας μιας λίστας πολλαπλών επιλογών σε ένα FileListBox και την εμφάνισή του σε ένα SimpleListBox (κάποιο "απλό" στοιχείο ελέγχου λίστας).
var k: ακέραιος αριθμός ...
με το FileListBox1 κάνουμε
εάν SelCount> 0 τότε
για k: = 0 σε στοιχεία. Ο αριθμός 1 γίνεται
αν επιλεγεί [k] τότε
SimpleListBox. Στοιχεία. Προσθήκη (Στοιχεία [k]);
Για να εμφανίσετε πλήρη ονόματα μονοπατιών που δεν συντομεύονται με μια ελλείψη, μην εκχωρήσετε ένα όνομα αντικειμένου Label στην ιδιότητα DirLabel ενός DirectoryListBox. Αντίθετα, εισαγάγετε μια ετικέτα σε μια φόρμα και ορίστε την ιδιότητα της υπότιτσας στο συμβάν OnChange του DirectoryListBox στο DirectoryListBox. Ιδιότητα καταλόγου.