Большинство Windows-приложений
обладают стандартным графическим
интерфейсом. Ранее мы научились
устанавливать требуемый размер окна
проекта, его положение на экране монитора,
цвет фона и шрифта и др. Однако, работа со
многими проектами невозможна без меню и
панелей инструментов, которые обеспечивают
доступ к тем или иным событийным процедурам.
Проект
5.9. «Простой текстовый редактор».
Разработаем простейший текстовый редактор,
который позволит выполнять основные
операции редактирования текста. В качестве
области ввода и редактирования текста
используем многострочное текстовое поле.
|
Проект «Простой текстовый редактор». |
1 |
Разместить
на форме текстовое поле и присвоить ему
имя txtEdit. |
2 |
Для
того чтобы сделать поле многострочным,
свойству поля MultiLine
присвоить значение True.
|
Создадим меню для нашего текстового
редактора. Меню состоит из одного или
нескольких заголовков верхнего уровня,
например, Файл,
Правка
и т.д., в каждый из которых входит хотя бы
одна команда. Например, Файл-Выход,
Правка-Вырезать-Копировать-Вставить-Удалить.
Каждый заголовок меню и каждая команда
являются управляющими элементами, которые
обладают многими свойствами, но только
одним событием Click.
Для создания меню используется
специальный редактор меню Menu Editor.
3 |
Для
запуска редактора меню в перейти в окно
формы командой [View-Object]
и ввести команду [Tools-Menu
Editor…].
|
|
4 |
На
появившейся диалоговой панели Menu
Editor
создать заголовок первого уровня. В
поле Caption
внести надпись Правка и в поле Name
имя объекта mnuEdit.
|
|
5 |
Для создания следующего пункта меню щелкнуть по кнопке Next. Для создания пункта меню уровня команд (например, команды меню Правка) щелкнуть по кнопке со стрелкой вправо. Ввести надпись Вырезать и имя mnuCut. |
|
6 |
Повторить процедуру и создать команды, входящие в меню Правка: Копировать (mnuCopy), Вставить (mnuPaste) и Удалить (mnuDel). |
Теперь необходимо для каждого пункта
меню создать событийную процедуру, которая
будет выполняться по щелчку мыши.
7 |
В режиме конструирования проекта раскрыть меню и последовательно двойным щелчком мыши создать пустые заготовки событийных процедур для каждого пункта меню. |
|
8 |
В процессе редактирования текста в окне txt.Edit необходимо использовать для промежуточного хранения фрагментов текста объект Windows Clipboard (Буфер обмена). Сначала необходимо очистить буфер с использованием метода Clear. Затем поместить выделенный в текстовом поле фрагмент текста (свойство текстового поля Seltext) в буфер c использованием метода буфера SetText. Наконец, удалить выделенный текст, присвоив свойству SelText пустое значение “”. Таким образом,
событийная процедура для команды меню Вырезать
запишется следующим образом: Private
Sub
mnuEditCut_Click() '
Очистить Буфер обмена. Clipboard.Clear '
Поместить выделенный текст в Буфер
обмена. Clipboard.SetText
frm1.txtEdit.SelText '
Удалить выделенный текст. frm1.txtEdit.SelText =
"" End Sub
|
|
9 |
Событийная
процедура для команды меню Копировать
запишется следующим образом: Private
Sub
mnuEditCopy_Click() '
Очистить Буфер обмена. Clipboard.Clear '
Поместить выделенный текст в Буфер
обмена. Clipboard.SetText
frm1.txtEdit.SelText End Sub
|
|
10 |
Событийная
процедура для команды меню Вставить
запишется следующим образом: Private
Sub
mnuEditPaste_Click() '
Вставить текст из Буфера обмена. frm1.txtEdit.SelText =
Clipboard.GetText() End Sub
|
|
11 |
Событийная
процедура для команды меню Удалить
запишется следующим образом: Private
Sub
mnuEditDel_Click() '
Удалить выделенный текст. frm1.txtEdit.SelText =
"" End
Sub |
|
12 |
Запустить проект, ввести в текстовом окне текст и произвести его редактирование с использованием пунктов меню Правка. |
|
Для быстрого ввода команд используются
панели инструментов. Элемент управления Панель инструментов (ToolBar)
не входит в стандартный набор управляющих
элементов языка Visual Basic. Для работы с этим
элементом необходимо воспользоваться
одним из дополнительных наборов
управляющих элементов Microsoft
Windows Common
Control 6.0.
13 |
Ввести команду
[Project-Components…]. На появившейся
диалоговой панели Components
из списка дополнительных наборов
управляющих элементов выбрать набор Microsoft
Windows Common
Control 6.0. |
|
|
|
Панель инструментов окна Visual Basic дополнится новыми управляющими элементами и, в том числе, ToolBar и ImageList. |
Создадим панель инструментов для меню Правка.
14 |
В режиме конструирования проекта поместить на форму управляющий элемент Панель инструментов и присвоить ему имя tbrToolbar. |
|
15 |
Активизировать свойство Custom. На появившейся диалоговой панели Property Pages выбрать вкладку Buttons. Щелкнуть по кнопке Insert Button. В поле Key: ввести имя первой кнопки панели инструментов Cut. |
|
16 |
Повторить процедуру и поместить на панель инструментов проекта кнопки Copy, Paste и Del. |
Для панели инструментов Правка необходимо создать
событийную процедуру, которая должна
обеспечивать необходимые действия по
редактированию текста по щелчку по каждой
из кнопок.
17 |
В
режиме конструирования проекта дважды
щелкнуть по панели инструментов проекта,
будет создана пустая заготовка
событийной процедуры. Использовать
инструкцию Select Case для вызова
требуемых действий после щелчка по
каждой из кнопок панели инструментов. Для идентификации кнопок использовать значения свойства Button.Key: Private
Sub
tbrToolbar_ButtonClick(ByVal Button As MSComctlLib.Button) Select
Case
Button.Key Case
Is
= “Cut” Clipboard.Clear Clipboard.SetText
frm1.txtEdit.SelText frm1.txtEdit.SelText = “” Case
Is
= “Copy” Clipboard.Clear Clipboard.SetText
frm1.txtEdit.SelText Case
Is
= “Paste” frm1.txtEdit.SelText =
Clipboard.GetText() Case
Is
= “Del” frm1.txtEdit.SelText = “” End
Select
End
Sub
|
Для удобства работы на
кнопки панели инструментов проекта
целесообразно поместить значки, как это
сделано в Windows и ее приложениях.
18 |
Поместить на форму управляющий элемент Список изображений (ImageList) и присвоить ему имя imlToolbar. |
|
19 |
Активизировать свойство Custom и на появившейся диалоговой панели Property Pages выбрать вкладку Images. Щелкнуть по кнопке Insert Picture… и выбрать графический файл (cut.bmp) для размещения на первой кнопке Cut. |
|
20 |
Повторить процедуру и выбрать графические файлы copy.bmp, paste.bmp и delete.bmp для кнопок Copy, Paste и Del. |
Синхронизировать
кнопки на панели инструментов tbrToolbar
и значки из списка рисунков imlToolbar.
21 |
Для элемента tbrToolbar активизировать свойство Custom. На вкладке General в окне ImageList выбрать элемент imlToolbar. На вкладке Buttons синхронизировать значения свойства Index (упорядочивает кнопки) и свойства Image (упорядочивают значки). |
|
22 |
Запустить проект и с помощью меню Правка и панели инструментов произвести редактирование введенного текста. |
|
23 |
Сохранить проект в файле prj9.vbp. |
Проект 5.10. «Усовершенствованный
текстовый редактор». На
основе предыдущего проекта 5.9 разработаем
текстовый редактор, который будет обладать
дополнительными возможностями:
-
открывать и сохранять текстовые файлы;
-
форматировать текст (изменять
параметры шрифты и выбирать цвет);
-
поддерживать технологию «drag and drop”.
Для реализации этого необходимо воспользоваться в качестве рабочего поля текстового редактора новым элементом управления RichTextBox (Усовершенствованное текстовое поле), которое является дополнительным компонентом и требует установки.
|
Проект «Усовершенствованный текстовый редактор» |
1 |
Ввести команду [Project-Components…]. На появившейся диалоговой панели Components из списка дополнительных управляющих элементов выбрать Microsoft Rich Textbox Control 6.0. |
|
Панель инструментов окна Visual Basic дополнится управляющим элементом RichTextBox. |
2 |
Открыть проект 5.9 и
удалить текстовое поле txtEdit.
Поместить на форму
усовершенствованное текстовое поле RichTextBox
и присвоить ему имя txtEdit.
|
Для
реализации операций с файлами и
форматирования текста понадобится еще один
дополнительный элемент управления CommonDialog
(Общий диалог).
3 |
Ввести команду [Project-Components…]. На появившейся диалоговой панели Components из списка дополнительных управляющих элементов выбрать набор Microsoft Common Dialog Control 6.0. |
|
Панель инструментов окна Visual Basic дополнится управляющим элементом CommonDialog. Поместить этот элемент в любое место формы (он будет виден только в режиме конструирования проекта) и присвоить ему имя dlg1. |
Для реализации дополнительных
возможностей текстового редактора
необходимо расширить систему меню и ввести
дополнительные пункты Файл
и Форматирование,
содержащие команды второго и третьего
уровня:
4 |
С
помощью редактора меню Menu
Editor
расширить систему меню и ввести
пункты: |
|
|
Файл ….Открыть
… ….Сохранить ….Сохранить как … |
Форматирование ….Шрифт ….Цвет ……..Цвет
шрифта ……..Цвет
фона |
Теперь для каждого пункта меню
необходимо создать событийные процедуры. В
процессе выполнения событийных процедур
будут использоваться свойства
управляющего элемента Общий диалог dlg1,
для которых должны быть предварительно
установлены определенные значения.
Создадим событийные процедуры открытия
и сохранения файла.
5 |
Активизировать объект Общий диалог dlg1. Выбрать свойство Custom, появится диалоговая панель Property Pages для установки значений свойств этого объекта. Выбрать вкладку Open/Save As и в поле DialogTitle ввести имя для окна, которое будет возникать при открытии файла. |
|
6 |
Ввести
программный код событийной процедуры,
которая будет производить открытие
файла. В процедуре будет использован
метод ShowOpen, который откроет
соответствующую панель общего диалога,
и метод LoadFile, который
произведет открытие файла в текстовом
поле: Private
Sub
mnuOpen_Click() dlg1.ShowOpen txtEdit.LoadFile
dlg1.filename End Sub
|
|
7 |
Запустить
проект, ввести команду [Файл-Открыть…]. С
помощью появившейся стандартной панели
Windows Открыть файл
выбрать файл и щелкнуть по кнопке Открыть. Текст
файла появится в окне нашего текстового
редактора. |
|
8 |
Ввести
программный код событийных процедур Сохранить и Сохранить
как …. В
процедурах будет использован метод ShowSave,
который откроет соответствующую панель
общего диалога, и метод SaveFile, который
произведет сохранение файла. Процедура
Сохранить Private Sub
mnuSave_Click() dlg1.ShowSave If dlg1.filename = "" Then mnuSaveAs_Click Else txtEdit.SaveFile
dlg1.filename End If End Sub Процедура
Сохранить как …: Private Sub
mnuSaveAs_Click() dlg1.ShowSave txtEdit.SaveFile
dlg1.filename End
Sub |
|
9 |
Запустить
проект, ввести команду [Файл-Сохранить]. На
появившейся панели Открыть
файл в поле Имя файла:
ввести имя и щелкнуть по кнопке Сохранить. |
Создадим теперь событийную процедуру
форматирования шрифта.
10 |
Для объекта dlg1
выбрать свойство Custom,
и на диалоговой
панели Property
Pages
выбрать вкладку Font. В полях FontName, FontSize, Min и Max ввести параметры шрифта, которые будут использоваться по умолчанию. Обязательно установить в поле Flags значение 2 (определяет используемый тип шрифтов). |
|
11 |
Ввести
программный код событийной процедуры
форматирования шрифта. В
процедуре будет использован метод ShowFont,
а также пять свойств, определяющих
начертание шрифта: Private
Sub
mnuFont_Click() dlg1.ShowFont txtEdit.Font.Size
= dlg1.FontSize txtEdit.Font.Name
= dlg1.FontName txtEdit.Font.Bold
= dlg1.FontBold txtEdit.Font.Italic
= dlg1.FontItalic txtEdit.Font.Underline
= dlg1.FontUnderline End
Sub |
|
12 |
Запустить
проект, ввести команду [Форматирование-Шрифт]. С
помощью появившейся стандартной панели
Windows Выбор шрифта
установить требуемые параметры шрифты. |
|
Создадим событийные процедуры выбора
цвета шрифта (свойство ForeColor) и цвета фона (свойство BackColor).
13 |
Для объекта dlg1
выбрать свойство Custom,
и на диалоговой
панели Property
Pages
выбрать вкладку Color. В поле Color установить 0 (по умолчанию черный цвет), в поле Flags значение 2 (определяет открытие полного диалогового окна выбора цвета). |
|
14 |
Ввести
программный код событийных процедур
выбора цвета шрифта и фона. В
процедурах будет использован метод ShowColor,
а также свойства
SelColor и BackColor. Процедура выбора цвета шрифта: Private
Sub
mnuFontColor_Click() dlg1.ShowColor txtEdit.SelColor = dlg1.Color End Sub
Процедура выбора цвета фона:
Private
Sub
mnuBackColor_Click() dlg1.ShowColor txtEdit.BackColor = dlg1.Color End
Sub |
|
15 |
Запустить
проект, ввести команду [Форматирование-Цвет-Цвет
шрифта]. На
появившейся панели Цвет
задать числами интенсивность трех
базовых составляющих цвета (Красный:,
Зеленый: и Синий:) или выбрать
с помощью мыши нужный цвет. |
|
16 |
В
результате получаем вполне
работоспособный текстовый редактор,
который позволяет открывать и сохранять
текстовые файлы, редактировать и
форматировать текст. |
|
17 |
Сохранить
проект в файле prj10.vbp. |
5.38.
Усовершенствовать проект 5.9 «Простой
текстовый редактор» введением меню Файл
c командой Выход, которая обеспечивает
выход из проекта.
5.39.
Усовершенствовать проект-задание 5.38,
дополнив его панелью инструментов Файл с
кнопкой
Выход.
5.40.
Усовершенствовать проект-задание 5.39,
предусмотрев возможность поиска и замены
фрагментов текста, а также редактирования
больших текстов.