Читайте также:
|
|
До сих пор я знакомил вас с довольно простыми элементами управления, такими как кнопки, текстовые поля и т.п. Достаточно ли таких простых элементов, чтобы запрограммировать любые приложения Windows? В принципе, да. Возьмем, например, диалоговое окно сохранения файла. Оно похоже в большинстве приложений Windows.
Вы видите, что оно состоит из кнопок, флажка, раскрывающихся списков и других простых элементов, большинство из которых мы проходили. Все эти элементы собраны на форме с заголовком Save As. Таким образом, если мы захотим организовать сохранение файла, мы должны будем в проекте создать еще одну форму, которая и будет диалоговым окном (как создавать в проекте дополнительные формы, я расскажу в 19.1). Затем мы поместим на эту форму нужные элементы управления и запрограммируем работу каждого из них. В общем, работа довольно большая, но выполнимая.
Разработчики Visual Basic постарались облегчить жизнь программистам и создали элемент управления CommonDialog, который уже имеет вид нужного диалогового окна. Простые элементы управления внутри диалогового окна уже запрограммированы надлежащим образом. Все, что остается программисту - это написать немного кода для настройки окна.
Common Dialog - настоящий многоликий Янус. Он может по желанию программиста перестраиваться на выполнение самых разных задач, перечисленных в нижеприведенной таблице. То, какую именно задачу он будет решать, определяется тем, какой из методов этого элемента будет выполнен:
Вставьте Common Dialog на панель Toolbox из Projects®Components. Там вы его найдете под именем Microsoft Common Dialog Control 6.0. Затем поместите его на форме. Его имя - Common Dialog1. В режиме работы он не виден и возникает в нужном обличье только при выполнении одного из своих методов:
Задача, решаемая элементом управления Common Dialog1 | Метод |
Открытие файла | CommonDialog1.ShowOpen |
Сохранение файла | CommonDialog1.ShowSave |
Выбор цвета | CommonDialog1.ShowColor |
Выбор шрифта | CommonDialog1.ShowFont |
Выбор принтера для печати | CommonDialog1.ShowPrinter |
Окно помощи Help | CommonDialog1.ShowHelp |
Пример открытия и сохранения файлов с помощью элемента Common Dialog
Чтобы лучше представить себе механику работы элемента Common Dialog, рассмотрим пример его использования для считывания и записи информации в произвольные текстовые файлы. Задача: Нажатием на кнопку Command1 поместить на экран диалоговое окно открытия файла, выбрать в нем произвольный текстовый файл, считать из него первую строку, затем при желании нажатием на кнопку Command2 преобразовать эту информацию (дописать в конец строки восклицательный знак), затем нажатием на кнопку Command3 поместить на экран диалоговое окно сохранения файла, выбрать в нем произвольный текстовый файл и информацию записать в него. Вот программа:
Dim s As String 'Переменная для хранения считанной и преобразованной информации
Private Sub Command1_Click()
CommonDialog1. ShowOpen 'Показать диалоговое окно открытия файла
Файл = CommonDialog1. FileName 'Это имя файла выбрано из диалогового окна
Open Файл For Input As #1 'Открываем выбранный файл для чтения
Line Input #1, s 'Считывание первой строки из выбранного файла
Debug.Print s
Close #1
End Sub
Private Sub Command2_Click()
s = s & "!" 'Преобразование информации - добавление в конец строки восклицательного знака
End Sub
Private Sub Command3_Click()
CommonDialog1. ShowSave 'Показать диалоговое окно сохранения файла
Файл = CommonDialog1.FileName 'Это имя файла выбрано из диалогового окна
Open Файл For Output As #1 'Открываем выбранный файл для записи
Print #1, s 'Запись информации в выбранный файл
Debug.Print s
Close #1
End Sub
Пояснения: На операторе CommonDialog1.ShowOpen появляется диалоговое окно открытия файла (аналогичное диалоговому окну сохранения файла, картинка которого показана выше), программа останавливается и ждет, когда мы выберем в окне какой-нибудь текстовый файл. После выбора окно пропадает, имя выбранного файла вместе с адресом становятся значением свойства FileName элемента CommonDialog, программа продолжает работу и это значение используется нами в операторе Open.
Аналогично работает и сохранение.
В приложениях Windows, таких как Word и Paint, мы привыкли, что открываемый файл становится нам виден в каком-нибудь окне. Здесь же ничего подобного нет, содержимого файла мы не видим. Для этого нужны дополнительные средства. На них мы не останавливаемся.
В диалоговом окне правильно работают многие кнопки и другие элементы. Однако нам нужно позаботиться кое о каких подробностях. Так, если мы хотим видеть в окне только текстовые файлы, нам нужно запрограммировать раскрывающийся список типов файлов. В противном случае мы можем нечаянно открыть графический файл, как текстовый, с неожиданными результатами. Также нужно позаботиться о том, чтобы при нажатии на кнопку Cancel не возникала ошибка. А возникает она по той причине, что оператор Open не знает, какой файл ему открывать. На этом я останавливаться не буду.
Вот более "правильная" запись этой же программы, использующая процедуры с параметрами:
Dim s As String 'Переменная для хранения считанной и преобразованной информации
Private Sub Command1_Click()
CommonDialog1.ShowOpen 'Показать диалоговое окно открытия файла
Файл = CommonDialog1.FileName 'Это имя файла - параметр для процедуры Открой
Открой Файл
End Sub
Private Sub Открой(Файл)
Open Файл For Input As #1
Line Input #1, s 'Считывание первой строки из файла
Debug.Print s
Close #1
End Sub
Private Sub Command2_Click()
s = s & "!" 'Преобразование информации - добавление в конец строки восклицательного знака
End Sub
Private Sub Command3_Click()
CommonDialog1.ShowSave 'Показать диалоговое окно сохранения файла
Файл = CommonDialog1.FileName 'Это имя файла - параметр для процедуры Сохрани
Сохрани Файл, s 'Сохрани в Файл строку s
End Sub
Private Sub Сохрани(Файл, s As String)
Open Файл For Output As #1
Print #1, s 'Запись информации в файл
Debug.Print s
Close #1
End Sub
Дата добавления: 2015-10-26; просмотров: 126 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Знакомство с другими элементами управления | | | Панель инструментов Toolbar |