| ||||||||||||||||
![]() | ||||||||||||||||
| ||||||||||||||||
![]() | ||||||||||||||||
| ||||||||||||||||
![]() |
Работа с элементом управления CommonDialog Часть#1 Элемент
управления CommonDialog позволяет
разработчикам
приложений
максимально
приблизить
разработку
интерфейса
своей
программы к
стилю
применяемого
в Windows. Так, как мне
часто
приходилось
сталкиваться
с проблемой
связанной с
применением
и работой
элемента
управления CommonDialog и
в последнее
время
получал ряд
писем с
вопросами о
его
применении,
то решил
поделиться
со всеми тем,
что знаю.
Применение
каждого
окна
диалога
постараюсь
дать
отдельными
обзорами. Прежде чем
начать
работу
выберите в
меню Project
| Components
управляющий
элемент Microsoft Common
Dialog Control 6.0 . В
панели
инструментов
у вас
появится
иконка эл.
управления CommonDialog . Разместив
на своей
форме эл.
управления CommonDialog,
Вы
получаете
возможность
вызова
таких окон,
как:
1.Окно
диалога Open;
2.Окно
диалога Save As;
3.Окно
диалога Color;
4.Окно
диалога Font;
5.Окно
диалога Print;
6.Запуск WinHelp32.exe; Выбор того
или иного
типа окна
диалога
происходит
посредством
установки
свойства Action
в
соответствующее
значение
или же
применением
соответствующего
метода.
Окно диалога Open Для вызова
окна
диалога Open неоходимо
свойство CommonDialog1.Action
установить
в 1 или же
применить
метод ShowOpen. Но,
прежде чем
перед Вами
появится
полноценное
Windows-кое
окно Open,
необходимо
назначить
ряд свойств. 1.Установить
начальную
директорию,
которая
будет
открываться
при вызове CommonDialog1-а. CommonDialog1.InitDir
= "C:\My Documents" Если не
установливать
этого
свойства, то
по
умолчанию
будет
открываться
директория,
которую Вы
использовали
последний
раз. 2.Установить
тип файлов,
которые
будет
отображать
диалог Open.
Для этого
объявляем
строковую
переменную strFileType и
присваиваем
ей
необходимые
значения. Dim
strFileType As String strFileType =
"All Files (*.*)|*.*|" strFileType =
StrFileType & " Word Documents ( *.doc )|*.doc |" strFileType =
StrFileType & " Text Files (*.txt)|*.txt|" Затем
свойству Filter,
CommonDialog,
присваиваем
значение
переменной strFileType. CommonDialog1.Filter
= strFileType Примечание.
Не
включайте
пробелы до и
после
разделителей,
иначе Вы
получите не
те файлы,
которые
указали. Устанавливаем
фильтр по
умолчанию,
выбрав для
этого
значение Word
Documents. CommonDialog1.FilterIndex
= 2 При
открытии
окна
диалога Open в
текстовом
окне "Files
of
type",
у Вас
отобразится
надпись Word Documents ( *.doc
). 3. И наконец,
отображаем
окно
диалога Open. CommonDialog1.Action
= 1 или
же CommonDialog1.ShowOpen Естественно,
раз Вы
вызвали
окно
диалога Open,
то его надо
использовать
по
назначению,
т.е. выбрать
необходимый
файл и
открыть его.
Выбор файла
производится
так, как и в Windows – e, но
для
продолжения
работы
необходимо
передать в
программу
путь и имя
выбранного
Вами файла.
Для этой
цели
существуют
два
свойства CommonDialog1
– а : CommonDialog1.FileTitle
–
возвращает
имя
выбранного
файла с
раширением (например.
"Hello.doc"); CommonDialog1.FileName
– возвращает
путь к
выбранному
файлу (например.
"C:\My Documents\Hello.doc"); Зная эти
данные Вы
можете
производить
соответствующие
операции
над
выбранными
файлами. Теперь
необходимо
оградить
программу
от
непредусмотренных
действий
пользователя. Что может
сделать
пользователь
? 1.Ввести
несуществующий
файл или
какие либо
символы и
нажать на
клавишу Open; 2.Не выбрав ни
одного
файла
нажать на
клавишу Open; Для
предупреждения
подобных
действий
свойству Flags
присваиваем
необходимую
константу. cdlOFNFileMustExist - Определяет,
что
пользователь
может
вводить
имена
только
существующих
файлов, если
флаг
установлен
и
пользователь
вводит
недопустимое
имя файла,
отображается
предупреждение.
Этот флаг
автоматически
устанавливает
флаг cdlOFNPathMustExist. Внимание.
На окне
диалога Open
находится
флажек для
включения
опции "Open
as
read
only"
.
Рассматривать
работу с
этим
флажком мы
не будем, по
этому
добавим еще
одну
константу,
которая
уберет его с
панели окна
диалога. cdlOFNHideReadOnly
- Делает
невидимым
переключатель
Read Only. И
теперь
свойство Flags
будет
выглядеть
следующим
образом. CommonDialog1.Flags = CdlOFNFileMustExist or CdlOFNHideReadOnly 3.Не выбрав ни
одного
файла
нажать на
клавишу Cancel; 4.Выбрать
файл и
нажать на
клавишу Cancel; Что бы
предотвратить
появления
ошибки, при
этих
действиях
пользователя,
дополняем
вышеприведенный
код
обработчиком
ошибки.
Необходимо
заметить,
что ошибку
должно
генерировать
само окно
диалога, для
этого,
свойство CommonDialog1.CancelError
установите
в True.
Тепрь при
нажатии на
клавишу Cancel будет
генерироваться
ошибка 32755 – Cancel
was
selected
(Выбрана
Отмена). CommonDialog1.CancelError
= True Теперь
скомпануем
все
вышеописанное
в
упорядоченный
код: Private
Sub
mnuOpen_Click() 'Объявляем
строковую
переменную
для
назначения
типов
ф Dim
strFileType As String 'Если
возникнет
ошибка, т.е
пользователь
нажел на
клавишу Cancel, ‘отправиться
к
обработчику
ошибки - ErrorHandler On Error
GoTo ErrorHandler 'Обеспечиваем
генерацию
ощибки CommonDialog1.CancelError
= True 'Инициализируем
строковую
переменную
strFileType strFileType =
"All Files (*.*)|*.*|" strFileType =
StrFileType & " Word Documents ( *.doc )| *.doc |" strFileType =
StrFileType & " Text Files (*.txt)|*.txt|" 'Присваиваем
ее свойству Filter CommonDialog1.Filter
= strFileType 'Устанавливаем
необходимый
индекс CommonDialog1.FilterIndex
= 2 'Присваиваем
начальную
директорию
своству InitDir CommonDialog1.InitDir
= "D:\DOCUMENTS" 'Обеспечиваем
защиту от
неправильного
введенного
файла или
дериктории,
а так же
скрываем
флажек Read Only CommonDialog1.Flags =
cdlOFNFileMustExist or cdlOFNHideReadOnly 'Вызываем
диалог Open CommonDialog1.Action
= 1 'Или же
CommonDialog1.ShowOpen '*********** 'Здесь
распологается
Ваш код.(не
забудте, что
путь к
выбранному
файлу Вы
считываете
из свойства FileName) '********** Exit
Sub 'Обработка
перехватываемой
ощибки ErrorHandler: If
Err.Number = 32755 Then Exit
Sub End If End
Sub Теперь
диалог Open
полностью
готов к
работе. Если Вы
желаете
поэксперементировать
с окном
диалога Open,
то ниже
приводятся
константы,
котрые
можно
присваивать
свойству Flags.
[Вперед] |
|
![]() | ||||||||||||||||
| ||||||||||||||||
![]() | ||||||||||||||||
|