аталогу.
Всі глобальні константи оголошені в програмі за допомогою директиви define. LEFT=1 і RIGHT=0 - використовується для позначення панелі, над якою виробляються действія._DELETER=5 використовується в Delete для вибору дії «приміщення в корзину.
Використовуються глобальні змінні: (тип int) змінює значення, коли в LitsDevicesLeft (ListDevicesRight) відбувається вибір пристрою або відбувається натискання на bCurrentRootDirLeft (bCurrentRootDirRight). Використовується для передачі в HendlerOfOpen.і RootDirRight (тип AnsiString) - поточний шлях кореневій директорії. Використовується для передачі в HendlerOfOpen., CurrentPathRight (тип AnsiString) - поточний шлях. Повертається HendlerOfOpen. Використовується для передачі в Delete, CreateFolder, CopyOrRemove. (Тип int) - приймає тільки два значення: LEFT і RIGHT. Використовується для вказівки активного панелі.
У головному модулі (Unit1), знаходиться опис головної форми програми, створюваної при її запуску, в тілі цього модуля знаходяться вихідні тексти обробників подій, породжуваних тими чи іншими діями користувача в головній формі програми (Form1).
У другому модулі (Unit2) описані всі функції, на виклику яких будується робота програми, крім функцій-обробників подій. У хедері цього модуля оголошені глобальні константи і змінні, а так само знаходяться прототипи функцій, що викликаються з інших модулів.
У третьому модулі (Unit3) знаходиться опис і функції-обробники подій для форми (FormDialogCreateDir), що є діалоговим вікном створення нової директорії.
У четвертому модулі (Unit4) знаходиться опис і функції-обробники подій для форми (FormDialogDelete), що є діалоговим вікном видалення або приміщення в корзину.
4. Реалізація програми
При запуску програми створюється головна форма Form1 - представник класу TForm відповідно з малюнком 4.1. При створенні форми створюються списки доступних пристроїв, які відображаються в FileListLeft і FileListRigh, в обох панелях відображається коренева директорія диска C: , оскільки нами було зроблено припущення, що цей логічний диск повинен бути практично на всіх комп'ютерах, так само створюється безліч атрибутів директорії DirAttribSet, використовуване функціями другого модуля.
У Form1 реалізовано одна подія: Create (створення, функція-обробник: FormCreate). Далі опишемо об'єкти, розташовані на Form1.і FileListRight - представниками класу TStringGrid (строкова таблиця). Виконують функцію панелей, куди відбувається відображення вмісту директорій і де користувач вибирає файл (каталог), над яким він збирається виконувати будь-яку дію. Тут велике значення має поняття «активна панель». Роль активної панелі грає та таблиця, до якої в даний момент звертається користувач. Всі операції відбуваються з файлами (каталогами), відображеними в активній панелі (копіювання і переміщення здійснюється в папку, вміст який в даний момент відображено в неактивній панелі). У програмі передбачено різний вигляд для активної і неактивної панелей. У FileListLeft і FileListRigh реалізовані наступні події: DblClick (подвійний клік миші, функції-обробники: FileListLeftDblClick і FileListRightDblClick), Enter (вхід, що означає, що панель стає активною, функції-обробники: FileListLeftEnter і FileListRightEnter), KeyDown («гарячі клавіші» , функції-обробники: FileListLeftKeyDown і FileListRightKeyDown) .і ListDevicesRight - представники класу TComboBox (випадаючий список вибору). Є списками доступних пристроїв зберігання інформації. Вибір користувачем якого-небудь пристрою з цього списку означає перехід до кореневої директорії цього пристрою, яка відображається у відповідній панелі, що стає при цьому активною. У випадку, якщо кореневі директорії в обох панелях після вибору збігаються, то в активній панелі відображається вміст тієї ж папки, що і в неактивній. У ListDevicesLeft і ListDevicesRight реалізовані наступні події: - Select (вибір пункту в списку, функції-обробники: ListDevicesLeftSelect і ListDevicesRightSelect), Enter (вхід, що означає, що відповідна панель стає активною, функції-обробники: FileListLeftEnter і FileListRightEnter)., BCopy, bCreateDir, bDelete, bCurrentRootDirLeft і bCurrentRootDirRight - представники класу TButton (кнопка). Кнопки виконують різні функції. У всіх кнопках реалізовано тільки одна подія - Click (натискання, функції обробники: bCreateDirClick, bDeleteClick, bCopyClick, bRemoveClick, bCurrentRootDirLeftClick і bCurrentRootDirRightClick). При натисканні на bRemove відбувається переміщення файлу (каталогу, з усіма вкладеними каталогами) з папки, відображеної в активній панелі, в папку, відображену в неактивній. Натискання bCopy практично аналогічно натисненню на bRemove. тільки відбувається копіювання, а не переміщення. Натискання на bCreateDi...