Шаг 15.
Компоненты библиотеки RX.
Вкладка RX Tools. Компонент TRxFolderMonitor

    На этом шаге мы рассмотрим компонент TRxFolderMonitor.

    Компонент TRxFolderMonitor предназначен для отслеживания изменений в каталогах файловой системы, таких как создание, удаление, изменение файлов или каталогов, смена атрибутов файлов и т.д. Когда происходит одно из изменений, определенных свойством Filter, вызывается событие OnChange. Компонент использует функции Win 32 API FindFirstChangeNotification, FindCloseChangeNotification и FindNextChangeNotification.

Таблица 1. Свойства компонента TRxFolderMonitor
Свойство Описание
property Filter: TFileChangeFilters; Свойство определяет файловые операции, которые активизируют событие OnChange. Возможные значения свойства:
  • fnFileName - любые изменения имен файлов в отслеживаемом каталоге и, возможно, его подкаталогах (переименование, создание или удаление файлов) вызывает событие OnChange.
  • fnDirName - любые изменения имен директорий в отслеживаемом каталоге и, возможно, его подкаталогах (создание или удаление каталогов) вызывает событие OnChange.
  • fnAttributes - любые изменения файловых аттрибутов в отслеживаемом каталоге и, возможно, его подкаталогах вызывает событие OnChange.
  • fnSize - любые изменения размера файлов в отслеживаемом каталоге и, возможно, его подкаталогах вызывает событие OnChange.
  • fnLastWrite - любые изменения времени последний записи (last write-time) в файл в отслеживаемом каталоге и, возможно, его подкаталогах вызывает событие OnChange.
  • fnLastAccess - любые изменения времени последнего доступа к файлу в отслеживаемом каталоге и, возможно, его подкаталогах вызывает событие OnChange.
  • fnSecurity - любые изменения security-descriptor в отслеживаемом каталоге и, возможно, его подкаталогах вызывает событие OnChange.
property OnChange: TNotifyEvent; Событие вызывается, когда в отслеживаемом каталоге и, возможно, его подкаталогах, происходят любые изменения, определенные свойством Filter. Событие вызывается только при значении свойства Active=True.
property Active: Boolean; Свойство определяет, будет ли компонент TRxFolderMonitor реагировать на изменения в каталоге, заданном свойством FolderName. Если Active = True, то изменения файлов или каталогов приводят к вызову события OnChange.
property FolderName: string; Указание каталога, в котором будут отслеживаться изменения.
type TFileChangeFilters = set of TFileChangeFilter; Тип определяет возможные значения свойства Filter компонента TRxFolderMonitor.
type TFileChangeFilter = (fnFileName, fnDirName, fnAttributes, fnSize, fnLastWrite, fnLastAccess, fnCreation, fnSecurity); Тип определяет возможные значения свойства Filter компонента TRxFolderMonitor.

    Рассмотрим пример, демонстрирующий работу компонента TRxFolderMonitor. Поместим на форму компоненты: панель TPanel и TRxFolderMonitor. В свойстве FolderName компонента TRxFolderMonitor указываем каталог, в котором будут отслеживаться изменеия. Свойство Active устанавливаем в значение True и пмшем обработчик события OnChange компонента TRxFolderMonitor:

procedure TForm1.RxFolderMonitor1Change(Sender: TObject);
begin
     Form1.Panel1.Caption:='Change!!!';
end;

    При наступлении события OnChange мы меняем свойство Caption компонента TPanel. Это будет признаком того, что в указанном каталоге произошли изменения.

Текст этого примера можно взять здесь.

    На следующем шаге мы рассмотрим компонент TClipboardViewer




Предыдущий шаг Содержание Следующий шаг