Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторный практикум по Visual Basic.doc
Скачиваний:
51
Добавлен:
31.08.2019
Размер:
10.63 Mб
Скачать

Практическая часть

Задание 1. Создание пользовательского меню для текстового редактора. Обработка пунктов меню Правка.

Практически во всех встречающихся программах имеются пункты меню «Файл», «Правка» и т.п. Подпункты меню «Файл» отвечают за работу с файлами, а меню «Правка» – за работу с содержимым текстового или иного файла.

Чаще всего в пункте меню «Правка» содержатся такие команды, как «Копировать», «Вставить», «Вырезать», «Удалить».

В предыдущей лабораторной работе Вы уже познакомились с тем, как создается пользовательское меню. В ходе выполнения данной лабораторной работы Вы активизируете навыки создания подобного меню, а также научитесь создавать и обрабатывать наиболее распространенные команды меню, относящиеся к работе с текстовыми файлами.

Постановка задачи.

Поставим задачу: создать простейшее приложение, содержащее пользовательское меню, состоящее из пунктов меню «Файл» и «Правка». Пункты меню «Правка» должны позволять осуществлять с файлами, точнее, с их текстовым содержимым, следующие действия:

  • копировать содержимое выделенного текста в буфер обмена;

  • вырезать выделенное текстовое содержимое файла;

  • удалять выделенное текстовое содержимое файла;

  • вставлять текстовое содержимое из буфера обмена;

В ид подобного приложения (вид пунктов меню «Файл» и «Правка») приведен на Рис.15.1 и 15.2.

Ход работы.

  1. Создайте папку Лабораторная_работа_№15.

  2. Запустите программу Microsoft Visual Basic 6.0.

  3. В появившемся окне выберите тип приложения STANDARD.exe и нажмите кнопку «Открыть».

  4. Свойству Name открывшейся форме Form1 присвойте значение frmБлокнот, а свойству Caption значение Блокнот. Остальные свойства для Формы установите по своему усмотрению (цвет, размеры и т.п.).

  5. Разместите на форме компонент TextBox.

  6. Удалите у компонента TextBox содержимое из свойства Text.

  7. Выполните команду Tools Menu Editor (Отладка → Редактор).

  8. В окне редактора меню создайте меню, указав данные, приведенные в таблице 15.5. Для перехода к следующему пункту щелкайте по кнопке Next. Для создания подпункта пользуйтесь стрелками → и ←. В результате меню должно иметь вид, представленный на Рис.15.1 и 15.2.

Таблица 15.5

Название (Caption)

Уровень (← →)

Имя (Name)

Файл

1

mnuProg

Создать

2

itmСоздать

Открыть

2

itmОткрыть

Закрыть

2

itmЗакрыть

Сохранить

2

itmСохранить

Сохранить как

2

itmСохранить_как

Выход

2

itmВыход

Правка

1

mnuПравка

Копировать

2

itmКопировать

Вырезать

2

itmВырезать

Вставить

2

itmВставить

Удалить

2

itmУдалить

  1. Щелкая по очереди левой клавишей мыши на пунктах меню «Правка» наберите нижеследующий программный код, соответствующий каждому пункту. Необходимые комментарии приведены в кавычках в коде программы.

Private Sub itmВставить_Click()

'вставим текст, находящийся в буфере обмена

frmБлокнот.Text1.SelText = Clipboard.GetText()

End Sub

Private Sub itmВырезать_Click()

Clipboard.Clear 'очистка буфера обмена

'поместим выделенный текст в буфер обмена

Clipboard.SetText frmБлокнот.Text1.SelText

'удалим выделенный текст

frmБлокнот.Text1.SelText = ""

End Sub

Private Sub itmКопировать_Click()

Clipboard.Clear 'очистка буфера обмена

'поместим выделенный текст в буфер обмена

Clipboard.SetText frmБлокнот.Text1.SelText

End Sub

Private Sub itmУдалить_Click()

'удалим выделенный текст

frmБлокнот.Text1.SelText = ""

End Sub

  1. Сохраните форму под именем Bloknot.frm и проект под именем Блокнот.vbp.

  2. Запустите проект на выполнение. Проверьте функционирование пунктов меню «Правка».

  3. Закройте запущенное приложение. Создайте exe-файл приложения с помощью команды File Make Блокнот.exe.

  4. Выйдите из среды Visual Basic.

  5. Запустите на выполнение файл Блокнот.exe и убедитесь, что проект работает автономно, как любые другие Windows-приложения.

Задание 2. Создание стандартной панели инструментов.

Постановка задачи.

Дополнить приложение, созданное в предыдущем задании панелью инструментов, содержащей кнопки с командами, аналогичными командам пункта меню «Правка».

Ход работы.

1. Внутри папки Лабораторная_работа_№15 создайте папку Images. Подберите картинки с изображением действий, подобные тем, что располагаются в каждой программе на стандартной панели инструментов. Создайте их самостоятельно, если на Вашем компьютере нет папки Images (уточните ее местоположение у преподавателя). Сохраните эти картинки в созданную папку Images с соответствующими названиями в формате bmp, например Copy.bmp, Cut.bmp, Delete.bmp и Paste.bmp.

2. Выберите команду Project - Components

3 . На вкладке Controls установите флажок у компонента Microsoft Windows Common Controls 6.0 (SP6). В результате в окне ToolBox появятся компоненты ToolBar (панель инструментов) и ImageList (список картинок).

4. Разместите элементы ToolBar и ImageList на форме.

5. Щелкните правой клавишей мыши по ImageList и выберите опцию Properties.

6. В окне Property Pages выберите вкладку Images.

7. Щелкните по кнопке Insert Picture и найдите в появившемся окне нужную папку с картинками (в нашем случае папка Images, которую Вы создали в папке с данной лабораторной работой).

8. Выбранная картинка появится в поле Images, а в поле Index появится ее порядковый номер – 1. Аналогично вставьте вторую картинку. (Рис.15.4). Закончив, щелкните на кнопке OK.

9. Щелкните правой клавишей мыши по расположенному на форме компоненту ToolBar. Выберите опцию Properties.

10. В открывшемся окне Property Pages выберите вкладку General.

11. В списке ImageList выберите ImageList1.

12. Откройте вкладку Buttons.

13. Щелкните по кнопке Insert Button. В поле Index появится 1.

14. Далее выберите стиль кнопки (с помощью кнопки Style) (в примере оставлен по умолчанию 0)

1 5. В поле Image введите индекс картинки из ImageList, которую Вы хотите поместить на кнопку. В поле Key введите любое слово, по которому в дальнейшем, как по имени, будет происходить обращение к этой кнопке (например, Вставить).

16. Также заполните поле ToolTipText. Информация, введенная в это поле, будет отображаться в виде подсказки при подведении мыши к кнопке (Рис.15.5).

17. Проведите аналогичные действия для остальных кнопок. Закончив, нажмите на кнопке OK.

Осталось запрограммировать работу кнопок на панели инструментов.

18. Щелкните два раза левой клавишей мыши на созданной панели инструментов и наберите в открывшемся окне следующий программный код:

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

Select Case Button.Key

Case "Копировать"

Call itmКопировать_Click

Case "Вырезать"

Call itmВырезать_Click

Case "Вставить"

Call itmВставить_Click

Case "Удалить"

Call itmУдалить_Click

End Select

End Sub

  1. Сохраните проект.

  2. Запустите проект на выполнение. Проверьте функционирование кнопок стандартной панели инструментов и пунктов меню «Правка».

  3. Закройте запущенное приложение. Создайте exe-файл приложения с помощью команды FileMake Блокнот.exe.

  4. Выйдите из среды Visual Basic.

  5. Запустите на выполнение файл Блокнот.exe и убедитесь, что проект работает автономно, как любые другие Windows-приложения.

Задание 3. Создание и обработка команд меню Формат.

В меню «Формат», располагаются команды, отвечающие за изменение вида содержимого текстового или какого-либо другого документа (например, Шрифт, Список и т.п.)

Постановка задачи.

Дополнить приложение, созданное в предыдущем задании, пунктом меню «Формат» и соответствующими командами.

Ход работы.

1. Сначала заменим компонент TextBox более многофункциональным компонентом Rich TextBox. Для этого удалите компонент TextBox с формы и выберите команду Project Components.

2. В открывшемся окне поставьте галочку напротив строки M icrosoft Rich TextBox Control 6.0 (SP3).

3. Разместите компонент Rich TextBox на форме вместо прежнего компонента TextBox.

4. Чтобы не менять в программном коде предыдущее имя, измените свойство Name у компонента Rich TextBox на Text1.

5. Выберите команду Tools Menu Editor (Редактор → Отладка) и дополните ранее созданное меню пунктом Формат, структура которого приведена на Рис.15.6. Названия пунктов приведены в Таблице 15.6.

Таблица 15.6

Название (Caption)

Уровень (← →)

Имя (Name)

Формат

1

mnuФормат

Шрифт

2

itmШрифт

Цвет

2

itmЦвет

Шрифт

3

subШрифт

Фон

3

subФон

6. Разместите на Форме компонент Common Dialog. В процессе работы он будет невидим.

7. Присвойте у компонента Common Dialog свойству Name значение CDlg1.

8. Выберите у компонента Common Dialog свойство Custom, и затем вкладку Font.

9. В полях FontName, FontSize, Min и Max установите параметры шрифта, которые будут использоваться по умолчанию. В поле Flags установить значение 2, определяющее тип шрифтов.

10. Выберите пункт меню Формат → Шрифт и напишите для обработчика этой команды следующий программный код (необходимые комментарии приведены в кавычках):

Private Sub itmШрифт_Click()

CDlg1.ShowFont 'Показываем диалоговое окно настроек шрифта

Text1.Font.Size = CDlg1.FontSize 'Присваиваем размеру шрифта в компоненте

'Text1 значение размера шрифта, которое

'будет указано в диалоговом окне настроек

Text1.Font.Name = CDlg1.FontName 'Устанавливаем тип шрифта

Text1.Font.Bold = CDlg1.FontBold 'Полужирное начертание шрифта

Text1.Font.Italic = CDlg1.FontItalic 'Курсивное начертание шрифта

Text1.Font.Underline = CDlg1.FontUnderline 'Подчеркнутый текст

Text1.Font.Strikethrough = CDlg1.FontStrikethru 'Зачеркнутый текст

End Sub

11. Еще раз активизируйте у компонента Common Dialog свойство Custom, и затем вкладку Color.

12. В поле Color поставьте значение 0 (черный цвет), а в поле Flags значение 2.

13. Для обработки пункта меню Шрифт → Цвет → Шрифт напишите следующий программный код:

Private Sub subШрифт_Click()

CDlg1.ShowColor

Text1.SelColor = CDlg1.Color

End Sub

14. Для обработки пункта меню Шрифт → Цвет → Фон добавьте следующий программный код:

Private Sub subФон_Click()

CDlg1.ShowColor

Text1.BackColor = CDlg1.Color

End Sub

  1. Сохраните проект.

  2. Запустите проект на выполнение. Проверьте функционирование кнопок пункта меню «Формат».

  3. Закройте запущенное приложение. Создайте exe-файл приложения с помощью команды File Make Блокнот.exe.

  4. Выйдите из среды Visual Basic.

  5. Запустите на выполнение файл Блокнот.exe и проверьте работоспособность приложения.

Задание 4. Создание и обработка команд меню Файл. Работа с файлами

В меню «Файл» обычно располагаются команды, отвечающие за загрузку ранее сохраненного текстового или какого-либо другого документа (Открыть), сохранение изменений, внесенных в открытый текстовый документ (новый или ранее созданный), создание нового документа (Создать/Новый).

Постановка задачи.

Запрограммировать работу команд пункта меню «Файл», позволяющих:

  • создать новый файл;

  • открыть существующий файл;

  • сохранить существующий файл;

  • выйти из программы.

Ход работы.

1. Структура меню «Файл» была приведена на Рисунке 15.1. Для работы пунктов меню «Файл» необходимо сначала описать переменные. Наберите в начале кода программы (в разделе глобальных объявлений) нижеследующие строки (в кавычках приведены соответствующие комментарии):

Dim txtChange As Boolean 'Переменная txtChange принимает значение True,

'если в текстовом поле были какие-то изменения

Dim textString As String 'Переменная содержит строку текста, прочитанную

'из текстового файла оператором Input#

2. Затем наберите две событийные процедуры:

Private Sub Form_Load()

Text1.Text = ""

End Sub

Private Sub Text1_Change()

txtChange = True 'Переменная txtChange принимает значение True, если

'в текстовом поле были изменения

End Sub

3. Создадим процедуру сохранения файла Сохранить. С помощью этой процедуры открывается диалоговое окно Save As (Сохранить как). Для того, чтобы можно было работать в этом окне, необходимо:

  • разместить на форме или воспользоваться ранее помещенным на форму компонентом Common Dialog, которому мы присвоили имя CDlg1;

  • задать в программном коде свойства CancelError, Flags и Filter объекта CommonDialog, относящиеся к окну Save As;

  • применить метод ShowSave;

  • использовать свойство FileName для того, чтобы файл сохранился под именем, набранным пользователем.

Процедура сохранения файла имеет следующий вид:

Private Sub itmСохранить_Click()

CDlg1.CancelError = True 'Включаем формирование ошибки при щелчке

'на кнопке <Cancel>

On Error GoTo ErrMessage 'Если возникла ошибка (щелчок по кнопке

'<Cancel>, управление переход к строке с

'меткой ErrMessage и выполняется следующий

'за ней оператор

CDlg1.Flags = cdlOFNOverwritePrompt Or cdlOFNHideReadOnly

CDlg1.Filter = "Text files(*.txt)|*.txt|RTF files(*.rtf)|*.rtf"

CDlg1.ShowSave 'Этот метод выводит на экран диалоговое окно

'«Сохранить как (Save as

Open CDlg1.FileName For Output As #1 'Файл открывается для записи в него

'в него информации. Свойство FileName

'используется для задания имени

'файла, набранного пользователем

Print #1, Text1.Text 'Запись в файл содержимого текстового поля

Close #1

ErrMessage:

End Sub

Создадим процедуру для открытия файла. Для этого нам понадобится создать процедуру по щелчку на кнопке «Открыть» (процедура itmОткрыть_Click) и отдельная процедура Открыть. Процедура открытия файла должна приводить к открытию диалогового окна Open (Открыть файл).

4. Щелкните в меню по команде «Открыть» и наберите нижеследующий код:

Private Sub itmОткрыть_Click()

Dim msg As Byte

If txtChange = True Then 'Если в текстовом

'поле были какие-то изменения, появляется окно

'MsgBox (Рис.15.7)

msg = MsgBox("Сохранить изменения?", 35, "Блокнот")

Else

msg = 7

End If

Select Case msg

Case 6 'Если в окне MsgBox щелкнули по кнопке

'<Да>, т.е. требуется сохранение,

Call itmСохранить_Click 'то вызывается процедура сохранения файла,

Call Открыть 'а затем процедура Открыть для открытия файла

Case 7 'Если в окне MsgBox щелкнули по кнопке

'<Нет>, то сохранение не требуется,

textString = ""

CDlg1.CancelError = True

On Error GoTo ErrMessage

Call Открыть 'и сразу вызывается процедура Открыть для открытия файла

End Select

ErrMessage:

End Sub

5. Теперь наберите отдельную процедуру Открыть (команды, обозначающие начало и конец процедуры – Private Sub и End Sub – набирать нужно самостоятельно, т.к. эта процедура существует отдельно, а не формируется автоматически).

Private Sub Открыть()

CDlg1.CancelError = True

On Error GoTo ErrMessage

CDlg1.Flags = cdlOFNFileMustExist Or cdlOFNHideReadOnly

CDlg1.Filter = "Text files(*.txt)|*.txt|RTF files(*.rtf)|*.rtf"

CDlg1.ShowOpen 'Этот метод выводит на экран

'диалоговое окно “Open”(Открыть)

Open CDlg1.FileName For Input As #1 'Файл с выбранным именем откры-

'вается для чтения информации

Text1.Text = ""

Do

Line Input #1, textString 'переменная textString содержит

'строку текста, прочитанную из

'текстового файла оператором

'Line Input#

Text1.Text = Text1.Text + textString + Chr(13) + Chr(10)

Loop Until EOF(1) 'Если достигнут конец файла, то

'файл закрывается, если нет –

'цикл повторяется

Close #1

txtChange = False

ErrMessage:

End Sub

6. Создадим общую процедуру создания файла Создать_Click(). Необходимые комментарии приведены в кавычках.

Private Sub itmСоздать_Click()

Dim msg As Byte

If txtChange = True Then

msg = MsgBox("Сохранить изменения?", 35, "Блокнот") 'Если в текстовом поле

'были какие-то изменения, появляется окно 'MsgBox

Else

Text1.Text = ""

txtChange = False

End If

Select Case msg

Case 6 'Если в окне MsgBox щелкнули по кнопке

'кнопке <Да>, т.е. требуется сохранение

Call itmСохранить_Click 'то вызывается процедура сохранения файла

Text1.Text = ""

txtChange = False

Text1.SetFocus

Case 7 'Если в окне MsgBox щелкнули по

'кнопке <Нет>, то сохранение не требуется

Text1.Text = ""

txtChange = False

Text1.SetFocus

End Select

End Sub

7. Для создания процедуры Сохранить_как достаточно следующего кода:

Private Sub itmСохранить_как_Click()

If CDlg1.FileName = "" Then

itmСохранить_Click

Else

ErrMessage:

End If

End Sub

8. Создадим общую процедуру Выхода из программы. Для этого скопируйте код процедуры Создать в процедуру Выход, а затем измените его.

Код процедуры Выход отличается от процедуры Создать только тем, что вместо строк

Text1.Text = ""

txtChange = False

Text1.SetFocus

используется оператор End, закрывающий программу.

Необходимые комментарии приведены в кавычках.

Private Sub mnuВыход_Click() 'Щелчок мышью по опции меню Выход

Dim msg As Byte

If txtChange = True Then

msg = MsgBox("Сохранить изменения?", 35, "Блокнот")

Else

End 'Если в текстовом поле не было изменений, программа завершает работу

End If

Select Case msg

Case 6 'Если в окне MsgBox щелкнули по кнопке <Да>,

'т.е. требуется сохранение, то

Call itmСохранить_Click 'вызывается процедура сохранения файла, а

End 'затем работа программы прекращается

Case 7 'Если в окне MsgBox щелкнули по кнопке <Нет>,

'то сохранение требуется и работа программы завершается

End

End Select

End Sub

  1. Сохраните проект.

  2. Запустите проект на выполнение. Проверьте функционирование кнопок пункта меню «Файл».

  3. Закройте запущенное приложение. Создайте exe-файл приложения с помощью команды File Make Блокнот.exe.

  4. Выйдите из среды Visual Basic.

  5. Запустите на выполнение файл Блокнот.exe и проверьте работоспособность всего приложения.

Подведем итоги

В работе были использованы новые

объекты:

- Rich TextBox.

- CommonDialog

методы:

ShowOpen (выводит на экран диалоговое окно открытия файла)

ShowSave (выводит на экран диалоговое окно сохранения файла)

ShowColor (выводит на экран диалоговое окно выбора цвета)

ShowFont (выводит на экран диалоговое окно выбора характеристик шрифта)

Clear (очищает буфер обмена)

SetText (помещает в Буфер обмена текстовые данные)

свойства:

CancelError (включает формирование ошибки при щелчке на кнопке <Cancel>)

Flags (значения этого свойства задают значения диалогового окна)

Filter (задает типы файлов, которые будут показаны в списке файлов диалогового окна)

FileName (имя файла)

SelText (выделенный текст)

FontName (тип шрифта)

FontSize (размер шрифта)

FontColor (цвет шрифта)

FontBold (жирный)

FontItalic (курсив)

FontStrikethru (зачеркнутый)

FontInderline (подчеркнутый)

события:

Change (сообщает об изменении содержимого объекта)

операторы:

On Error Goto (обработка ошибок)

Open (открывает текстовый файл)

Close (закрывает текстовый файл)

Line Input # (чтение данных из текстового файла)

Input # (чтение данных из текстового файла)

Print # (запись данных в текстовый файл)

Wtrite # (запись данных в текстовый файл)

функции:

EOF (возвращает значение True, если достигнут конец файла, и значение False, если не достигнут)

Задания для самостоятельного выполнения

1. Составьте конспект по теоретической части лабораторной работы. Выполненное задание покажите преподавателю.

2. Дополните Ваше приложение Блокнот.exe опцией меню «О программе». При выборе опции данного пункта меню или щелчка по соответствующей кнопке она должна выдавать окно сообщения или окно формы, примерный вид которой представлен на Рис.15.8.

3. Дополните Ваше приложение Блокнот.exe панелью инструментов, содержащей кнопки, аналогичными пункту меню Файл (Создать, Открыть, Сохранить). Запрограммируйте их действие.

4. Добавьте на панель инструментов кнопку «О программе», при щелчке на которую выводится соответствующее окно (Рис.15.8).

5*. Дополнить текстовый редактор процедурами поиска и замены фрагментов текста.

6*. Добавьте в приложение «Тест», разработанное в Лабораторной работе 13, возможность записи результата теста и данных пользователя в текстовый файл.

Вопросы для контроля

1. Перечислите известные вам свойства объекта CommonDialog

2. Перечислите известные Вам методы объекта CommonDialog

3. В чем состоит отличие компонента Rich TextBox от компонента TextBox?

4. Какие типы файлов вам известны? В чем их отличие друг от друга?

5. Укажите формат операторов и событий для различных типов текстовых файлов