Работа с элементом управления
CommonDialog
Окно диалога Save As
Для вызова
окна диалодгa Save As необходимо
свойство CommonDialog1.Action установить в 2
или применить метод ShowSave. Но, прежде
необходимо назначить ряд свойств.
- Установить
начальную директорию, которая будет
открываться при вызове CommonDialog1 - а.
CommonDialog1.InitDir = "C:\My Documents"
Если не установить этого свойства, то
по умолчанию будет открыватья
директория, которую Вы использовали в
последний раз.
- Установить
тип файлов, которые будут отображать
диалог Save As. Для этого объявляем
строковую переменную strFileType и
присваиваем ей необходимые значения.
Dim strFileType As
String
strFileType = "All Files (*.*)|*.*|"
strFileType = strFileType & " Word Document ( *.doc )|*.doc|"
strFileType = strFileType & " Text Files (*.txt)|*.txt|"
Затем свойству Filter, CommonDialog1,
присваиваем значение переменной strFileType.
CommonDialog1.Filter = strFileType
Примечание. Не включайте пробелы
до и после разделителей, иначе Вы
получите не те файлы, которые указали.
Устанавливаем фильтр по умолчанию,
выбрав для него значение Word Document.
CommonDialog1.FilterIndex = 2
При открытии окна диалога Save As в
текстовом окне "Save As ", у Вас
отобразится надпись Word Document (*.doc).
- И наконец,
отображаем окно диалога Save As.
CommonDialog1.Action = 2
или же
CommonDialog1.ShowSave
Естественно, раз Вы вызвали окно
диалога Save As, то его надо
использовать по назначению, т.е.
ввести в текстовое окно File Name имя
файла для записи. При этом введенное
Вами имя файла присваивается свойству
CommonDialog.FileName.
Зная имя файла
Вы можете производить его запись
соответствующими методами. Теперь
необходимо, как и при окне диалога Open
уменьшить возможности возникновения
ошибок.
Для этого свойству Flags присваиваем
необходимую константу.
- cdlOFNOverwritePrompt
- заставляет
диалоговое окно Save As генерировать
блок сообщений, если выбранный файл
уже существует, пользователь должен
подтвердить, что бы записать новый
файл поверх старго.
На окне диалога Save As находится
флажек для включения опции "Open as
read only" . Да, да это не опечатка и по
этому добавим знакомую константу,
которая уберет его с панели окна
диалога.
cdlOFNHideReadOnly - делает невидимым
переключатель Read Only.
И теперь свойство Flags будет
выглядеть следующим образом.
CommonDialog1.Flags = cdlOFNOverwritePrompt or cdlOFNHideReadOnly
Т.к. обычно окно диалога Save As
используют с окном диалога Open, то
значить у Вас свойство CommonDialog1.CancelError
уже установленно в True и
присутствует обработчик ошибок. Если
этого нет, сделайте так, как описанно в
окне диалога Open.
Теперь скомпануем все выше описанное
в упорядоченный код:
Private Sub mnuSaveAs_Click()
'Объявляем строковую
переменную для назначения типов
файлов
Dim strFileType As
String
'Если возникнет ошибка,
т.е.пользователь нажал на клавишу Cancel,
'отправится к обработчику ошибки -
ErrorHandler
On Error GoTo ErrorHandler
'Обеспечиваем
генерацию ошибки
CommonDialog1.CancelError = True
'Инициализируем
переменную strFileName
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 = "C:\DOCUMENTS"
'Обеспечиваем защиту
от неправильно введенного файла или
директории, а аткже скрываем флажек Read
Only
CommonDialog1.Flags = cdlOFNOverwritePrompt or cdlOFNHideReadOnly
'Вызываем диалог Save As
CommonDialog1.Action = 2 'Или же
CommonDialog1.ShowSave
Exit Sub
'Обработка
перехватываемой ошибки
If Err.Number = 32755 Then
Exit Sub
End If
End Sub
Теперь диалог Save As полностью готов
к работе.
|