Как использовать Delphi для создания собственного проводника Windows

Проводник Windows - это то, что вы используете в операционной системе Windows для поиска файлов и папок. Вы можете создать аналогичную структуру с Delphi, чтобы такой же контент заполнялся в пользовательском интерфейсе вашей программы.

Общие диалоговые окна используются в Delphi для открыть и сохранить файл в приложении. Если вы хотите использовать настраиваемые файловые менеджеры и диалоговые окна просмотра каталогов, вам придется иметь дело с компонентами Delphi файловой системы.

Группа палитр Win 3.1 VCL включает в себя несколько компонентов, которые позволяют создавать собственные диалоговые окна «Открытие файла» или «Сохранение файла»: 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 активируя его По изменению обработчик события:

 процедура 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) во время выполнения также может быть выполнено во время разработки. Вы можете выполнить этот тип соединения во время разработки, установив следующие свойства (из Инспектора объектов):

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

Пользователи могут выбрать несколько файлов в FileListBox, если его свойство MultiSelect равно True. В следующем коде показано, как создать список из нескольких выборок в FileListBox и показать его в SimpleListBox (некоторый «обычный» элемент управления ListBox).

 переменная k: целое число; ...
с FileListBox1 сделать
если SelCount> 0, то
для k: = 0 к пунктам. Счет-1 до
если выбрано [k], то
SimpleListBox. Предметы. Добавить (Items [k]);

Чтобы отобразить полные имена путей, которые не сокращены с помощью многоточия, не назначайте имя объекта Label свойству DirLabel объекта DirectoryListBox. Вместо этого вставьте метку в форму и установите для ее свойства заголовка в событии OnChange DirectoryListBox значение DirectoryListBox. Каталог недвижимости.

instagram story viewer