Читайте также:
|
|
Большинство Windows-приложений обладают стандартным графическим интерфейсом. Ранее мы научились устанавливать требуемый размер окна проекта, его положение на экране монитора, цвет фона и шрифта и др. Однако, работа со многими проектами невозможна без меню и панелей инструментов, которые обеспечивают доступ к тем или иным событийным процедурам.
Проект «Простой текстовый редактор». Разработаем простейший текстовый редактор, который позволит выполнять основные операции редактирования текста. В качестве области ввода и редактирования текста используем многострочное текстовое поле.
Проект «Простой текстовый редактор». | |
Разместил на форме текстовое поле и присвоить ему имя txtEdit. | |
Для того чтобы сделать поле многострочным, свойству поля MultiLine присвоил значение True. |
Создадим меню для нашего текстового редактора. Меню состоит из одного или нескольких заголовков верхнего уровня, например, Файл, Правка и т.д., в каждый из которых входит хотя бы одна команда. Например, Файл-Выход, Правка-Вырезать-Копировать-Вставить-Удалить. Каждый заголовок меню и каждая команда являются управляющими элементами, которые обладают многими свойствами, но только одним событием Click.
Для создания меню используется специальный редактор меню Menu Editor.
Для запуска редактора меню в перейте в окно формы командой [View-Object] и ввёл команду [Tools-Menu Editor…]. | ||
На появившейся диалоговой панели Menu Editor создал заголовок первого уровня. В поле Caption внёс надпись Правка и в поле Name имя объекта mnuEdit. | ||
Для создания следующего пункта меню щелкнул по кнопке Next. Для создания пункта меню уровня команд (например, команды меню Правка) щелкнул по кнопке со стрелкой вправо. Ввёл надпись Вырезать и имя mnuEditCut. | ||
Повторил процедуру и создать команды, входящие в меню Правка: Копировать (mnuEditCopy), Вставить (mnuEditPaste) и Удалить (mnuEditDel). |
Теперь для каждого пункта меню создал событийную процедуру, которая будет выполняться по щелчку мыши.
В режиме конструирования проекта раскрыл меню и последовательно двойным щелчком мыши создать пустые заготовки событийных процедур для каждого пункта меню. | ||
В процессе редактирования текста в окне txtEdit использовал для промежуточного хранения фрагментов текста объект Windows Clipboard (Буфер обмена). Сначала очистил буфер с использованием метода Clear. Затем поместил выделенный в текстовом поле фрагмент текста (свойство текстового поля Seltext) в буфер c использованием метода буфера SetText. Наконец, удалить выделенный текст, присвол свойству SelText пустое значение “”. Таким образом, событийная процедура для команды меню Вырезать запишется следующим образом: Private Sub mnuEditCut_Click() ' Очистить Буфер обмена. Clipboard.Clear ' Поместить выделенный текст в Буфер обмена. Clipboard.SetText frm1.txtEdit.SelText ' Удалил выделенный текст. frm1.txtEdit.SelText = "" End Sub | ||
Событийную процедура для команды меню Копировать записал следующим образом: Private Sub mnuEditCopy_Click() ' Очистить Буфер обмена. Clipboard.Clear ' Поместить выделенный текст в Буфер обмена. Clipboard.SetText frm1.txtEdit.SelText End Sub | ||
Событийная процедура для команды меню Вставить записал следующим образом: Private Sub mnuEditPaste_Click() ' Вставить текст из Буфера обмена. frm1.txtEdit.SelText = Clipboard.GetText() End Sub | ||
Событийная процедура для команды меню Удалить записал следующим образом: Private Sub mnuEditDel_Click() ' Удалить выделенный текст. frm1.txtEdit.SelText = "" End Sub | ||
Запустил проект, ввёл в текстовом окне текст и произвёл его редактирование с использованием пунктов меню Правка. |
Для быстрого ввода команд использовал панели инструментов. Элемент управления Панель инструментов (ToolBar) не входит в стандартный набор управляющих элементов языка Visual Basic. Для работы с этим элементом воспользовался одним из дополнительных наборов управляющих элементов Microsoft Windows Common Control 5.0 (SP2).
Ввёл команду [Project-Components…]. На появившейся диалоговой панели Components из списка дополнительных наборов управляющих элементов выбрал набор Microsoft Windows CommonControl 5.0 (SP2). | ||
| Панель инструментов окна Visual Basic дополнится новыми управляющими элементами и, в том числе, ToolBar и ImageList. |
Создадим панель инструментов для меню Правка.
В режиме конструирования проекта поместил на форму управляющий элемент ToolBar и присвоил ему имя tbrToolbar. | ||
Активизироватл свойство Custom. На появившейся диалоговой панели Property Pages выбрал вкладку Buttons. Щелкнул по кнопке Insert Button. В поле Key: ввёл имя первой кнопки панели инструментов Cut. | ||
Повторил процедуру и поместил на панель инструментов проекта кнопки Copy, Paste и Del. |
Для панели инструментов Правка создал событийную процедуру, которая должна обеспечивать необходимые действия по редактированию текста по щелчку по каждой из кнопок.
В режиме конструирования проекта дважды щелкнул по панели инструментов проекта, и будет создана пустая заготовка событийной процедуры. Использовал инструкцию Select Case для вызова требуемых действий после щелчка по каждой из кнопок панели инструментов. Для идентификации кнопок использовал значения свойства Button.Key: Private Sub tbrToolbar_ButtonClick(ByVal Button As ComctlLib.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 и ее приложениях.
Поместил на форму управляющий элемент Список изображений (ImageList) и присвоил ему имя imlToolbar. | ||
В окне Свойства объекта активизировал свойство Custom и на появившейся диалоговой панели Property Pages выбрал вкладку Images. Щелкнулпо кнопке Insert Picture… и выбрал графический файл (cut.bmp) для размещения на первой кнопке Cut. | ||
Повторил процедуру и выбрать графические файлы copy.bmp, paste.bmp и delete.bmp для кнопок Copy, Paste и Del. |
Синхронизировал кнопки на панели инструментов tbrToolbar и значки из списка рисунков imlToolbar.
Для элемента tbrToolbarактивизировал свойство Custom. На вкладке General в окне ImageList выбрал элемент imlToolbar. На вкладке Buttons синхронизировал значения свойства Index (упорядочивает кнопки) и свойства Image (упорядочивают значки). | ||
Запустил проект и с помощью меню Правка и панели инструментов произвеёл редактирование введенного текста. | ||
Сохранил проект. Готовый проект prj9.vbp сохранил на CD-ROM в каталоге \practicum\VB\Projects\project9\ |
.
Проект 5.10. «Усовершенствованный текстовый редактор». На основе предыдущего проекта 5.9 разработаем текстовый редактор, который будет обладать дополнительными возможностями:
· открывать и сохранять текстовые файлы;
· форматировать текст (изменять параметры шрифты и выбирать цвет);
· поддерживать технологию «drag and drop”.
Для реализации этого необходимо воспользоваться в качестве рабочего поля текстового редактора новым элементом управленияRichTextBox (Усовершенствованное текстовое поле), которое является дополнительным компонентом и требует установки.
Проект «Усовершенствованный текстовый редактор» |
Ввел команду [Project-Components…]. На появившейся диалоговой панели Components из списка дополнительных управляющих элементов выбрал Microsoft Rich Textbox Control 5.0. | |
Панель инструментов окна Visual Basic дополнилась управляющим элементом RichTextBox. |
Требуемый управляющий элемент Microsoft Rich Textbox Control 5.0 в дистрибутив VB5.0 CCE не входит. Его наличие в списке компонентов на диалоговой панели Components зависит от установленного на компьютере программного обеспечения: версии операционной системы Windows, версии Microsoft Office и др.
Элемент управления RichTextBox (Усовершенствованное текстовое поле) можно установить вручную. Для этого необходимо скопировать файл RICHTX32.OCX из каталога на диске \practicum\VB\Projects\project10\ в каталог локального компьютера\WINDOWS\system32\. Для регистрации компонента перейти в этот каталог и ввести команду [Пуск-Выполнить...]. В появившемся текстовом поле ввести команду:
regsvr32.exe RICHTX32.OCX
Открыл проект 5.9 (файл prj9.vbp) и удалил текстовое поле txtEdit. Поместил на форму усовершенствованное текстовое поле RichTextBox и присвоил ему имя txtEdit. |
Для реализации операций с файлами и форматирования текста понадобится еще один дополнительный элемент управленияCommonDialog (Общий диалог).
Ввел команду [Project-Components…]. На появившейся диалоговой панели Components из списка дополнительных управляющих элементов выбрал набор Microsoft Common Dialog Control 5.0 (SP2). | |
Панель инструментов окна Visual Basic дополнится управляющим элементом CommonDialog. Поместил этот элемент в любое место формы (он будет виден только в режиме конструирования проекта) и присвоил ему имя dlg1. |
Для реализации дополнительных возможностей текстового редактора расширил систему меню и ввёл дополнительные пункты Файл и Форматирование, содержащие команды второго и третьего уровня:
С помощью редактора меню Menu Editor расширил систему меню и ввести пункты: | ||
Файл …Открыть … …Сохранить …Сохранить как … | Форматирование …Шрифт …Цвет ……Цвет шрифта ……Цвет фона |
Теперь для каждого пункта меню необходимо создать событийные процедуры. В процессе выполнения событийных процедур будут использоваться свойства управляющего элемента Общий диалог dlg1, для которых должны быть предварительно установлены определенные значения.
Создал событийные процедуры открытия и сохранения файла.
Активизировал объект Общий диалог dlg1. Выбрал свойство Custom, появится диалоговая панель PropertyPages для установки значений свойств этого объекта. Выбрал вкладку Open/Save As и в поле DialogTitle ввел имя для окна (например, Открыть файл), которое будет возникать при открытии файла. | ||
Ввёл программный код событийной процедуры, которая будет производить открытие файла. В процедуре будет использовал метод ShowOpen, который откроет соответствующую панель общего диалога, и метод LoadFile, который произведет открытие файла в текстовом поле: Private Sub mnuOpen_Click() dlg1.ShowOpen txtEdit.LoadFile dlg1.filename End Sub | ||
Запустил проект, ввёл команду [Файл-Открыть…]. С помощью появившейся стандартной панели Windows Открыл файл выбрать файл и щелкнул по кнопке Открыть. Текст файла появился в окне нашего текстового редактора. | ||
Ввёл программный код событийных процедур Сохранить и Сохранить как …. В процедурах использовал метод 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 | ||
Запустил проект, ввёл команду [Файл-Сохранить]. На появившейся панели Открыл файл в поле Имя файла: ввёл имя и щелкнул по кнопке Сохранить. |
Создал событийную процедуру форматирования шрифта.
Для объекта dlg1 активизировал свойство Custom, и на диалоговой панели Property Pages выбрал вкладку Font. В полях FontName, FontSize, Min и Max ввёл параметры шрифта, которые будут использоваться по умолчанию. Обязательно установил в поле Flags значение 2 (определяет используемый тип шрифтов). | ||
Ввёл программный код событийной процедуры форматирования шрифта. В процедуре будет использовал метод 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 | ||
Запустил проект, ввёл команду [Форматирование-Шрифт]. С помощью появившейся стандартной панели Windows Выбор шрифта установил требуемые параметры шрифты. |
Создал событийные процедуры выбора цвета шрифта (свойство ForeColor) и цвета фона (свойство BackColor).
Для объекта dlg1 активизировал свойство Custom, и на диалоговой панели Property Pages выбрал вкладку Color. В поле Color установил0 (по умолчанию черный цвет), в поле Flags значение 2 (определяет открытие полного диалогового окна выбора цвета). | ||
Ввёл программный код событийных процедур выбора цвета шрифта и фона. В процедурах использовал метод 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 | ||
Запустил проект, ввести команду [Форматирование-Цвет-Цвет шрифта]. На появившейся панели Цвет задал числами интенсивность трех базовых составляющих цвета (Красный:, Зеленый: и Синий:) | ||
В результате получил вполне работоспособный текстовый редактор, который позволяет открывать и сохранять текстовые файлы, редактировать и форматировать текст. | ||
Сохранил проект. Готовый проект prj10.vbp хранится в каталоге \practicum\VB\Projects\project10\. |
Задания для самостоятельного выполнения (Ответы)
5.38. Усовершенствовал проект 5.9 «Простой текстовый редактор» введением меню Файл c командой Выход, которая обеспечивает выход из проекта.
5.39. Усовершенствовал проект-задание 5.38, дополнив его панелью инструментов Файл с кнопкой Выход.
5.40. Усовершенствовал проект-задание 5.39, предусмотрев возможность поиска и замены фрагментов текста, а также редактирования больших текстов.
Дата добавления: 2015-07-21; просмотров: 59 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Практическое задание 3. | | | Создание мыльницы |