Как да използвате Delphi за изграждане на персонализиран Windows Explorer

click fraud protection

Windows Explorer е това, което използвате в операционната система Windows, за да разглеждате файлове и папки. Можете да създадете подобна структура с Delphi, така че същото съдържание да се попълва в потребителския интерфейс на вашата програма.

В Delphi се използват общи диалогови прозорци отворете и запишете файл в приложение. Ако искате да използвате персонализирани файлови мениджъри и диалози за сърфиране в директории, трябва да се справите с компонентите на файловата система Delphi.

Групата на палитрата Win 3.1 VCL включва няколко компонента, които ви позволяват да изградите свой собствен персонализиран диалогов прозорец „File Open“ или „File Save“: TFileListBox, TDirectoryListBox, TDriveComboBox, и TFilterComboBox.

Навигация на файлове

Компонентите на файловата система ни позволяват да изберем устройство, да видим йерархичната структура на директория на диск и да видим имената на файловете в дадена директория. Всички компоненти на файловата система са проектирани да работят заедно.

Например, вашият код проверява какво е направил потребителят, да речем, на DriveComboBox и след това предава тази информация на DirectoryListBox. След това промените в DirectoryListBox се предават на FileListBox, в който потребителят може да избере необходимия файл (и).

instagram viewer

Проектиране на диалоговия формуляр

Започнете ново Приложение Delphi и изберете раздела Win 3.1 на Палитра от компоненти. След това направете следното:

  • Поставете един TFileListBox, TDirectoryListBox, TDriveComboBox и TFilterComboBox компонент във формуляр, като запазите всичките им имена по подразбиране
  • Добавете един TEdit (наречен „FileNameEdit“) и един TLabel (наречете го „DirLabel“).
  • Включете няколко етикета с надписи, като „Име на файл“, „Директория“, „Списък на файловете от тип“ и „Дискове“.

За да покажете текущо избрания път като низ в надпис за компоненти на DirLabel, задайте името на етикета на каталога на DirectoryListBox Имот DirLabel.

Ако искате да покажете избраното име на файл в EditBox (FileNameEdit), трябва да присвоите името на обекта Edit (FileNameEdit) на FileListBox Свойство FileEdit.

Още линии от код

Когато имате всички компоненти на файловата система във формата, просто трябва да зададете DirectoryListBox. Свойство на устройството и FileListBox. Свойство на директория, за да може компонентите да комуникират и да покажат това, което потребителят иска да вижда.

Например, когато потребителят избира ново устройство, Delphi активира DriveComboBox OnChange обработващ събитията. Нека изглежда така:

 процедура TForm1.DriveComboBox1Change (подател: TObject);
beginDirectoryListBox1.Drive: = DriveComboBox1.Drive;
край;

Този код променя дисплея в DirectoryListBox чрез активирането му OnChange Манипулатор на събитията:

 процедура TForm1.DirectoryListBox1Change (подател: TObject);
beginFileListBox1.Directory: = DirectoryListBox1.Directory;
край;

За да видите кой файл е избрал потребителят, трябва да използвате OnDblClick събитие на FileListBox:

 процедура TForm1.FileListBox1DblClick (подател: TObject);
beginShowmessage ('Избрано:' + FileListBox1.FileName);
край;

Не забравяйте, че конвенцията на Windows е два пъти да изберете файла, а не едно кликване. Това е важно, когато работите с FileListBox, защото използването на клавиш със стрелки за движение през FileListBox ще извика всеки ръководител на OnClick, който сте написали.

Филтриране на дисплея

Използвайте FilterComboBox, за да контролирате типа файлове, които се показват във FileListBox. След като зададете свойството FileList FilterComboBox на името на FileListBox, задайте свойството Filter на типовете файлове, които искате да се показват.

Ето примерен филтър:

 FilterComboBox1.Filter: = 'Всички файлове (*. *) | *. * | Файлове на проекта (* .dpr) | * .dpr | Паскални единици (* .pas) | * .pas ';

Съвети и съвети

Задаване на DirectoryListBox. Свойство на устройството и FileListBox. Свойството на директория (в предварително написаните манипулатори на събитията на OnChange) по време на изпълнение също може да бъде направено по време на проектиране. Можете да осъществите този вид връзка по време на проектиране, като зададете следните свойства (от Object Inspector):

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

Потребителите могат да избират няколко файла във FileListBox, ако неговото свойство MultiSelect е True. Следващият код показва как да създадете списък с множество селекции във FileListBox и да го покажете в SimpleListBox (някаква „обикновена“ контрола на ListBox).

 var k: цяло число; ...
с FileListBox1 направете
ако SelCount> 0, тогава
за k: = 0 до елементи. Брой-1 направи
ако е Избрано [k], тогава
SimpleListBox. Предмети. Добавяне (Елементи [k]);

За да покажете имена на пътеки, които не са съкратени с елипса, не присвоявайте име на обект Label на свойството DirLabel на DirectoryListBox. Вместо това поставете етикет във формуляр и задайте неговото свойство на надписи в събитието OnChange на DirectoryListBox към DirectoryListBox. Свойство на директория.

instagram story viewer