Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual Basic 6.0~01.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
21.23 Mб
Скачать

Події списків файлів

Нижче перераховані події, підтримувані списками файлів.

Click

KeyPress

OLECompleteDrag

PathChange

DblClick

KeyUp

OLEDragDrop

PatternChange

DragDrop

LostFocus

OLEDragOver

Scroll

DragOver

MouseDown

OLEGiveFeedback

Validate

GotFocus

MouseMove

OLESetData

KeyDown

MouseUp

OLEStartDrag

Перераховані події багато в чому співпадають з подіями звичайних списків. Найчастіше в процедурі події Click кнопки виконуються деякі дії, засновані на значеннях властивостей Path і FileName списку файлів. Проте, досить часто користувач може добитися того ж ефекту подвійним клацанням на списку файлів. Як ви пам'ятаєте з розділу, присвяченого спискам, для цього слід викликати з процедури події DblClick списку файлів процедуру події Click кнопки.

Події PathChange і PatternChange характерні лише для списків файлів. Перше відбувається при зміні властивості Path. Аналогічно, подія PatternChange відбувається при програмній зміні властивості Pattern. Зазвичай шаблон вводиться користувачем в текстовому полі, після чого програма перетворить його у властивість Pattern. У процедурі події PatternChange можна відмінити зміну шаблону, якщо користувач ввів яке-небудь небезпечне значення - скажімо, *. ini.

Методи списків файлів

Цей елемент підтримує декілька методів, перерахованих в наступній таблиці. Усі ці методи не грають особливої ролі в роботі списків.

Drang

Move

OLEDrag

Refresh

SetFocus

ShowWhatsThis

ZOrder

Робота із списками файлів

М

Мал. 3.15. Додаток WinSeek.

и познайомимося з практичним застосуванням списків дисків, каталогів і файлів на прикладі проекту WinSeek.vbp. Ця програма переглядає поточний каталог поточного диска і шукає в нім файли за заданим шаблоном (наприклад, файли з розширенням .AVI, як показано на мал. 3.15).

1. Завантажите і Запустіть проект WinSeek, двічі клацнувши на імені файлу WinSeek. vbp в підкаталозі \MSDN98\98vs\1033\Samples\VB98\FileCtls\.

2. Виберіть в списку дисків диск З:, якщо він не вибраний за умовчанням.

3. У списку каталогів виберіть кореневий каталог. Ви повинні опинитися в каталозі З:\.

4

. У полі Критерій пошуку введіть шаблон для пошуку файлів потрібного типу (наприклад, *.AVI). Символ «зірочка» означає, що будуть знайдені усі файли розширенням .AVI.

5. Натисніть кнопку Search і простежите за тим, як WinSeek виводить знайдені файли. Результат пошуку буде схожий на мал. 3.16.

З

Мал. 3.16. Результати виконання WinSeek

акінчивши експерименти з додатком WinSeek, Завершіть його командою Run End з меню Visual Basic. Двічі клацніть на формі frmWinSeek, щоб відкрити вікно програми. Нас цікавлять процедури Change для списків drvList і dirList. Почнемо з процедури drvList_Change:

Private Sub drvList_Change()

On Error GoTo DriveHandler

dirList.Path - drvList.Drive

Exit Sub

DriveHandler:

drvList.Drive = dirList.Path

Exit Sub

End Sub

Передусім, в цьому фрагменті впадає у вічі оператор On Error. З усіх трьох елементів помилка з найбільшою вірогідністю може виникнути саме в списку дисків. Причина полягає в тому, що користувач може вибрати флопі-дисковід, в який не була вставлена дискета, - в цьому випадку виникає помилка. Перехопивши її, програма може спокійно продовжити свою роботу. Крім того, зверніть увагу на те, що програма ініціює подію Change списку каталогів, змінюючи значення властивості Path. Це, у свою чергу, призводить до виникнення події Change в списку файлів. Те, що відбувається частково нагадує «принцип доміно» - ви ініціюєте першу подію, воно ініціює наступне, і так далі по ланцюжку. Як видно з наступного фрагмента, процедура події Change списку каталогів змінює шлях списку файлів.

Private Sub DirList_Change()

' Відновити список файлів у відповідності _

' із списком каталогів

filList.Path = dirList.Path End Sub

Списки дисків, каталогів і файлів майже завжди використовуються разом. Проте в окремих випадках вам може знадобитися лише один з цих елементів. При спільній роботі необхідно включити в процедуру події Change кожного елементу код синхронізації.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]