Компонент TFindFile с исходным кодом |
![]() |
![]() |
Статьи | ||||
Естественно, мы должны получить наш компонент из TComponent.
Свойства TFindFileВот свойства компонента TFindFile
Методы TFindFileЕдинственная работа компонента TFindFile - это заполнить некоторый объект TStringList списком файлов, который соответствует некоторым критериям, поэтому он имеет единственный метод SearchForFiles. Выполнение его подобно:
Обратите внимание: переменная s (частная для компонента) имеет тип TStringList. Процедура SearchForFiles вызывает процедуру FileSearch (тоже частная). Процедура FileSearch заполняет (рекурсивно) переменную s списком всех найденных файлов. TFindFile в действииЧтобы увидеть компонент в действии, запустите новый проект Delphi, поместите один компонент TListBox, один TButton и конечно один TFindFile на форму. При нажатии на кнопку заполняется свойство Items у TListBoxа всеми файлами, которые найдены компонентом TFindFile. Только одна строка кода, вот и все, что нужно:
Естественно, все свойства компонента TFindFile первоначально были установлены во время проектирования. Когда Вы опускаете компонент TFindFile на форму, свойство Path указывает на текущий каталог, маска файла равна *.*, а свойство InSubFolders установлено в False по умолчанию. Обратите внимание: функция SearchForFiles заполняет объект StringList, в дополнение к ListBox мы можем использовать Memo (свойство Lines) или TComboBox (свойство Items). Создание и выполнение TFindFile во время выполненияКак и любой другой компонент Delphi, компонент TFindFile может быть создан, использоваться и разрушен во время выполнения. Чтобы создать компонент TFindFile во время выполнения, можно использовать следующий код (если предположить, что мы имеем TMemo по имени Memo1):
Эта часть кода создает компонент TFindFile во время выполнения и заполняет компонент Memo всеми файлами *.pas, которые найдены во всех подкаталогах запущенного приложения. Примечание 1: Если Вы посмотрите на код TFindFile, Вы заметите, что каждый раз, когда Вы пытаетесь изменить свойство Path (процедура SetPath): если указанный каталог не существует, свойство Path восстанавливается. Примечание 2: Если Вы хотите определить к какому каталогу принадлежит данная папка, установите'.' в свойстве Path, если Вы установите '..' в свойстве Path, это свойство укажет на родительскую папку. |