Məsləhətlər

Mimic Windows Explorer-ə Delphi Fayl və Kataloq İdarəetmə vasitələrindən istifadə edin

Mimic Windows Explorer-ə Delphi Fayl və Kataloq İdarəetmə vasitələrindən istifadə edin

Windows Explorer, Windows əməliyyat sistemində faylları və qovluqları nəzərdən keçirmək üçün istifadə etdiyiniz şeydir. Delphi ilə bənzər bir quruluş yarada bilərsiniz ki, eyni məzmun proqramınızın istifadəçi interfeysi daxilində yayılsın.

Bir proqramda bir fayl açmaq və saxlamaq üçün Delphi-də ümumi informasiya qutuları istifadə olunur. Xüsusi fayl menecerləri və qovluq gəzən informasiya qutularından istifadə etmək istəyirsinizsə, Delphi fayl sistemi ilə işləməlisiniz.

Win 3.1 VCL palitrası qrupu, özəl "Fayl Açıq" və ya "Fayl Saxla" informasiya qutusunu qurmağa imkan verən bir neçə komponentdən ibarətdir: TFileListBox, TDirectoryListBox, TDriveComboBox, və TFilterComboBox.

Faylların naviqasiyası

Fayl sistemi komponentləri bizə bir sürücü seçməyə, bir diskin iyerarxik qovluq quruluşuna və verilən qovluqdakı faylların adlarına baxmağa imkan verir. Fayl sistemi komponentlərinin hamısı birlikdə işləmək üçün hazırlanmışdır.

Məsələn, kodunuz, istifadəçinin bir DriveComboBox etdiyini yoxlayır və sonra bu məlumatı bir DirectoryListBox-a ötürür. DirectoryListBox-dakı dəyişikliklər daha sonra istifadəçi lazım olan faylı (ləri) seçə biləcəyi bir FileListBox-a ötürülür.

Dialoq formasının layihələndirilməsi

Yeni Delphi tətbiqinə başlayın və Komponent palitrasının Win 3.1 sekmesini seçin. Sonra aşağıdakıları edin:

  • Bir TFileListBox, TDirectoryListBox, TDriveComboBox və TFilterComboBox komponentlərini bütün standart adlarını saxlayaraq bir forma yerləşdirin.
  • Bir TEdit ("FileNameEdit" adlanır) və bir TLabel əlavə edin (onu "DirLabel" adlandırın).
  • "Fayl adı", "Kataloq", "Tip siyahıları sənədləri" və "Sürücülər" kimi yazıları olan bir neçə etiket əlavə edin.

Hal-hazırda seçilmiş yolu DirLabel komponentləri başlıqında bir simli olaraq göstərmək üçün etiketin adını DirectoryListBox-a təyin edin DirLabel əmlakı.

Seçilmiş fayl adını EditBox (FileNameEdit) şəklində göstərmək istəyirsinizsə, Edit obyektinin adını (FileNameEdit) FileListBox-a təyin etməlisiniz FileEdit xassəsi.

Kodun Daha Sətirləri

Formada bütün fayl sistemi komponentləri olduqda, komponentlərin ünsiyyət qurması və istifadəçinin görmək istədiyini göstərmək üçün sadəcə DirectoryListBox.Drive mülkiyyətini və FileListBox.Directory mülkiyyətini təyin etməlisiniz.

Məsələn, istifadəçi yeni bir sürücü seçəndə Delphi onu aktivləşdirir DriveComboBox OnChange hadisə idarəedicisi. Bu şəkildə görünün:

 proseduru TForm1.DriveComboBox1Change (Göndərən: TObject);
başlamaq
DirectoryListBox1.Drive: = DriveComboBox1.Drive;
son
;

Bu kod ekranı dəyişdirir DirectoryListBox aktivləşdirərək OnChange hadisə idarəçisi:

 proseduru TForm1.DirectoryListBox1Change (Göndərən: TObject);
başlamaq
FileListBox1.Directory: = DirectoryListBox1.Directory;
son
;

İstifadəçinin hansı faylı seçdiyini görmək üçün istifadə etməlisiniz OnDblClick hadisəsi FileListBox:

 proseduru TForm1.FileListBox1DblClick (Göndərən: TObject);
başlamaq
Showmessage ('Seçildi:' + FileListBox1.FileName);
son;

Unutmayın ki, Windows konvensiyasında bir klik vurmaqla deyil, iki dəfə vurmaqla faylı seçmək lazımdır. FileListBox ilə işləyərkən bu vacibdir, çünki FileListBox-dan keçmək üçün ox düyməsini istifadə edərək yazdığınız hər hansı bir OnClick işleyicisini çağıracaqsınız.

Ekranın süzülməsi

FileListBox-da göstərilən faylların növünə nəzarət etmək üçün FilterComboBox istifadə edin. FilterComboBox-un FileList xassəsini bir FileListBox adına təyin etdikdən sonra, Filter xüsusiyyətini göstərmək istədiyiniz fayl tiplərinə təyin edin.

Budur bir nümunə filtr:

FilterComboBox1.Filter: = 'Bütün fayllar (*. *) | *. * | Layihə sənədləri (* .dpr) | * .dpr | Paskal vahidləri (* .pas) | * .pas ';

Göstərişlər və göstərişlər

DirectoryListBox.Drive mülkiyyətini və FileListBox.Directory mülkiyyətini (əvvəlcədən yazılmış OnChange hadisə idarəedicilərində) iş vaxtında təyin etmək dizayn zamanı da edilə bilər. Dizayn vaxtında bu cür əlaqəni aşağıdakı xüsusiyyətləri təyin etməklə həyata keçirə bilərsiniz (Obyekt müfəttişindən):

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

MultiSelect mülkiyyəti Doğrudursa, istifadəçilər FileListBox-da birdən çox fayl seçə bilərlər. Aşağıdakı kod bir FileListBox-da birdən çox seçimin siyahısını necə yaratmağı və onu SimpleListBox-da (bəzi "adi" ListBox idarəetmə) göstərməyinizi göstərir.

var k: tam;;
ilə
FileListBox1 etmək
əgər
SelCount> 0 sonra
üçün
k: = 0-a qədər maddələr.Cəmi-1 etmək
əgər
Seçilmiş sonra
SimpleListBox.Items.Add (Itemsk);

Ellips ilə qısaldılmayan tam yol adlarını göstərmək üçün, DirectoryListBox-un DirLabel xüsusiyyətinə Label obyekt adını təyin etməyin. Bunun əvəzinə bir etiket şəklinə daxil edin və başlıq xüsusiyyətini DirectoryListBox-un OnChange hadisəsində DirectoryListBox.Directory mülkünə təyin edin.