Электронная библиотека » Евгений Матвеев » » онлайн чтение - страница 16


  • Текст добавлен: 16 октября 2020, 08:02


Автор книги: Евгений Матвеев


Жанр: Прочая образовательная литература, Наука и Образование


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 16 (всего у книги 18 страниц)

Шрифт:
- 100% +
15.4.3. Пример программирования

Работа с объектом Printer (Принтер) напоминает вывод изображения на специальную форму, размер которой совпадает с размерами бумажной страницы. Поэтому создание печатного документа напоминает рисование:


Printer.Print «Страница №»; ‘ печать колонтитула страницы №1

Printer.Print Printer.Page

Printer.Line (200, 200) – (500, 500) ‘ рисование линии

Printer.NewPage ‘ перевод страницы

Printer.Print «Страница №»; ‘ печать колонтитула страницы №2

Printer.Print Printer.Page

Printer.Circle (Printer. Width / 2, Printer. Height / 2), 100

Printer.PaperBin = vbPRBNAuto ‘ использовать лоток по умолчанию

Printer. EndDoc ‘ распечатка документа


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

Как вы наверное заметили, в этом фрагменте кода каждая строка начинается с имени объекта. Visual Basic позволяет сделать текст программы более компактным, если использовать инструкцию With. В этом случае данный код будет выглядеть следующим образом:


With Printer

.Print «Страница №»; ‘ печать колонтитула страницы №1

.Print Printer.Page

.Line (200, 200) – (500, 500) ‘ рисование линии

.NewPage ‘ перевод страницы

.Print «Страница №»; ‘ печать колонтитула страницы №2

.Print Printer.Page

.Circle (Printer. Width / 2, Printer. Height / 2), 100

.PaperBin = vbPRBNAuto ‘ использовать лоток по умолчанию

.EndDoc ‘ распечатка документа

End With

Глава 16. Этапы разработки приложений

В этой главе вы научитесь:

• понимать цели всех этапов разработки приложения,

• проектировать приложение, которое собираетесь написать.

16.1. Общие принципы работы программ

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

Основной задачей любой компьютерной программы является обработка информации. Этот процесс состоит из трех основных этапов:

• ввод исходных данных,

• их обработка,

• вывод результата.

Так, можно схематически изобразить любую программу в виде «черного ящика», куда поступают входные данные, обрабатываются и в результате получаются выходные данные (Рис.16.1).


Рис.16.1. Схема обработки данных

компьютерной программой


Эту же схему обработки данных можно представить и по-другому, в виде математической формулы:

y = f (x)

где:

x – входные данные,

y – выходные данные,

f – функция обработки данных, реализуемая программой.

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

Входные данные могут поступать в приложение из разных источников:

• клавиатура,

• мышь,

• модем,

• дисковый файл,

• буфер обмена Windows,

• другое приложение,

• и т. д., и т. п.

Вывод информации, также, может производиться различными путями:

• экран,

• принтер,

• модем,

• звуковые колонки,

• дисковый файл,

• буфер обмена Windows,

• другое приложение,

• и т. д., и т. п.

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

16.2. Обзор процесса разработки приложений

Разработка приложений с помощью системы программирования Visual Basic включает нескольких этапов, которые могут выполняться последовательно, либо перекрываться по времени выполнения:

• проектирование на бумаге,

• создание форм, элементов управления и меню,

• написание процедур обработки событий,

• поиск ошибок и отладка,

• создание дистрибутива.

16.3. Проектирование на бумаге

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

Для полной реализации требуемых функций и создания эффективного интерфейса приложения, выясните пожелания заказчика к проектируемому приложению:

• выходные данные (перечень и форма их представления),

• входные данные,

• выполняемые функции,

• пожелания к внешнему виду.

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

Например, необходимо создать текстовый редактор, аналогичный по своим возможностям стандартной программе Блокнот (Notepad). Практически все пользователи Windows пользовались ею для редактирования небольших текстовых файлов. Пожелания заказчика в этом случае могут выглядеть следующим образом (Рис.16.2).


Рис.16.2. Пожелания заказчика

к проектируемому текстовому редактору


Для разработки функциональной схемы приложения необходимо выполнить следующие действия:

Нарисуйте схему, подобную представленной на рисунке, и заполните блок «Выходные данные» с указанием формы их представления (Рис.16.3).


Рис.16.3. Выходные данные

проектируемого текстового редактора


Теперь разберитесь, какие потребуются входные данные, чтобы из них потом можно было получить выходные данные, и впишите их в верхний блок схемы. Некоторую помощь в этом окажет список предполагаемых входных данных, полученный от заказчика. Функциональная схема пополнится и станет выглядеть следующим образом (Рис.16.4).


Рис.16.4. Входные и выходные данные

проектируемого текстового редактора


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



В результате должна получиться полная функциональная схема проектируемого приложения (Рис.16.5).


Рис.16.5. Функциональная схема

проектируемого текстового редактора


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

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

Нарисуйте внешний вид программы, как вы ее представляете. В нашем случае это будет несложно, так как каждый пользовался стандартной программой Блокнот (Notepad).

Продумайте взаимное расположение выбранных элементов управления и схематично изобразите на бумаге внешний вид проектируемого приложения (Рис.16.6).


Рис.16.6. Внешний вид

проектируемого текстового редактора


Также схематично изобразите структуру меню, которое будет использоваться для вызова команд, позволяющих выполнять все функции приложения (Рис.16.7).


Рис.16.7. Структура меню

проектируемого текстового редактора


В данном случае в качестве образца использованы некоторые элементы меню текстовых редакторов Блокнот (Notepad) и Microsoft Word.



После того, как проект будущего приложения на бумаге будет завершен, можно садиться за компьютер и продолжать процесс разработки в системе программирования Visual Basic.

16.4. Использование мастеров

Создание многих приложений с помощью Visual Basic можно начинать с использования инструментального средства VB Application Wizard (Мастер приложений Visual Basic) (См. Главу 3).

Применение мастера VB Application Wizard (Мастер приложений Visual Basic) будет оправданным не во всех случаях. Основным условием использования этого мастера является соответствие интерфейса приложения одному из стандартов:

Multiple Document Interface (MDI) (Многодокументный интерфейс) – содержит главное окно и несколько подчиненных окон для возможности одновременной работы с несколькими документами, например, как в Microsoft Word,

Single Document Interface (SDI) (Однодокументный интерфейс) – содержит единственное окно для работы только с одним документом, например, как в стандартной программе Блокнот (Notepad),

Explorer Style (Стиль Проводника) – интерфейс, похожий на SDI, но окно приложения содержит дерево ресурсов и список, выглядит аналогично Проводнику Windows (Windows Explorer).

Другим доводом в пользу применения мастера VB Application Wizard (Мастер приложений Visual Basic) можно упомянуть необходимость работы с базами данных.

Вспомогательный мастер Data Form Wizard (Мастер форм доступа к данным) значительно упрощает создание программ, связанных с локальными и удаленными базами данных (См. Главу 3). Он вызывается из основного мастера VB Application Wizard (Мастер приложений Visual Basic).

Применение мастеров Visual Basic позволяет существенно уменьшить объем рутинной работы по созданию и программированию объектов интерфейса.



Но мастера тоже бывают нужны далеко не всегда. Не имеет смысла пользоваться мастерами Visual Basic, если интерфейс разрабатываемого приложения:

• слишком простой,

• нестандартный.

Именно по причине предельной простоты интерфейса мы вполне сможем обойтись без применения мастеров при разработке нашего текстового редактора.

16.5. Создание проекта

Проект Visual Basic представляет собой разрабатываемое приложение. Тип создаваемого проекта выбирается на вкладке New (Новый) диалога New Project (Новый проект) (См. Главу 3):

Standard EXE – создать стандартное приложение,

ActiveX EXE – создать компонент ActiveX в виде обычного приложения,

ActiveX DLL – создать компонент ActiveX в виде динамически загружаемой библиотеки (там будут храниться функции, необходимые для работы других приложений),

ActiveX Control – создать компонент ActiveX в виде инструмента для создания элементов управления Visual Basic,

VB Application Wizard – создать приложение с использованием мастера приложений Visual Basic,

VB Wizard Manager – запустить управляющую программыу по созданию пользовательских мастеров,

Data Project – создать приложение для работы с базами данных,

IIS Application – создать приложение для Microsoft Internet Information Server, которое может работать в Интернете или локальной сети,

Addin – создать дополнение для Visual Basic,

ActiveX Document Dll – создать документ ActiveX в виде динамически загружаемой библиотеки,

ActiveX Document Exe – создать документ ActiveX в виде приложения,

DHTML Application – создать приложение в виде динамической web-страницы,

VB Enterprise Edition Controls – создать стандартное приложение Windows, но с возможностью использования различных дополнительных элементов управления.

Запустите Visual Basic, после чего на экране появится диалог New Project (Новый проект), раскрытый на вкладке New (Новый) (Рис.16.8).


Рис.16.8. Вкладка New (Новый)

диалога New Project (Новый проект)



Мышью выделите значок Standard EXE (Стандартное приложение) и нажмите кнопку Open (Открыть) для создания нового проекта, после чего появится среда программирования Visual Basic в режиме design (проектирование) (Рис.16.9).


Рис.16.9. Среда программирования Visual Basic

в режиме design (проектирование)


Затем в меню Visual Basic выберите пункт Project  Project1 Properties… (Проект – Свойства Project1…). На экране появится диалог настройки Project1 – Project Properties (Project1 – Свойства проекта), раскрытый на вкладке General (Общие) (Рис.16.10).


Рис.16.10. Вкладка General (Общие)

диалога настройки Project1 – Project Properties

(Project1 – Свойства проекта)


Дважды щелкните мышью на поле ввода Project Name (Название проекта) и введите новое название – TextEdit. После этого нажмите кнопку OK для закрытия диалога и принятия сделанных изменений.

16.6. Добавление форм, элементов управления и меню

На данном этапе разработки после создания проекта следует предусмотреть добавление необходимых в данном приложении экранных объектов:

• форм (См. Главу 8),

• элементов управления (См. Главы 9 и 10),

• меню (См. Главу 11).

После этого производится подгонка размеров и взаимного расположения объектов, а также корректировка значений некоторых других свойств. Изменение значений свойств также производится и после применения мастеров.

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

Но все же настоятельно рекомендуется располагать экранные объекты аналогично тому, как это реализуется в наиболее популярных программах, например, в пакете Microsoft Office. Тогда новым пользователям вашей программы будет легче ориентироваться в ней.

Используя справочную информацию о формах и элементах управления (См. Главы 8 – 11), выберите наиболее подходящие объекты интерфейса для текстового редактора.

Проектируемое нами приложение потребует использования одной формы, на которой будут располагаться следующие элементы управления:

TextBox (Текстовое поле) – область ввода и редактирования текста,

CommonDialog (Стандартный диалог) – настройка параметров печати, чтения и записи данных в файлы,

Меню (Menu) – содержит команды вызова процедур для выполнения функций приложения.

Форма была сгенерирована Visual Basic автоматически еще при создании проекта. Остается разместить на ее поверхности необходимые элементы управления.

Выберите мышью значок инструмента Text Box (Текстовое поле), который находится на панели элементов управления (Tool Box) и нарисуйте в любом месте формы текстовое поле.

Откорректируйте в Properties Window (Окне свойств) значения следующих свойств:

MultiLine = True – чтобы текст располагался не в одну строку,

ScrollBars = 3 – Both – для отображения линеек прокрутки,

Text = – удалить имеющееся значение, чтобы оно не отображалось в текстовом поле.

Для добавления дополнительного элемента управления CommonDialog (Стандартный диалог) на ToolBox (Панель элементов), щелкните правой кнопкой мыши и в контекстном меню выберите пункт Components… (Компоненты).

На экране появится диалог Components (Компоненты), раскрытый на вкладке Controls (Элементы управления) (Рис.16.11).


Рис.16.11. Вкладка Controls (Элементы управления)

диалога Components (Компоненты)


Убедитесь, что сброшен флажок Selected Items Only (Только выбранные элементы), чтобы в списке отображались все дополнительные элементы управления, которые зарегистрированы в операционной системе.

Установите флажок слева от Microsoft Common Dialog Control 6.0 (Стандартный диалог Microsoft) и нажмите кнопку OK.

В панели элементов появится новый значок, с помощью которого нарисуйте на форме элемент управления CommonDialog (Стандартный диалог) и установите значения его свойств:

CancelError = True – необходимо для того, чтобы приложение могло обнаружить нажатие пользователем кнопки Cancel (Отмена),

DefaultExt = TXT – если имя файла, введенное пользователем с клавиатуры, не содержит расширения, то автоматически дописывается установленное по умолчанию,

Filter = Текстовые файлы|*.TXT|Все файлы|*.* – определяет перечень значений, который будет появится в открывающемся списке Тип файла (File Type).

Теперь приступим к созданию меню в верхней части формы, для чего выберите команду меню Tools – Menu Editor (Инструменты – Редактор меню), либо щелкните мышью на кнопке панели инструментов.

Появится окно Menu Editor (Редактор меню) (Рис.16.12).


Рис.16.12. Окно Menu Editor (Редактор меню)


С помощью редактора меню, использование которого было описано ранее (См. Главу 11), создайте нужные пункты системного меню приложения, заполнив соответствующие поля (Рис.16.13). Затем нажмите кнопку OK, и сохраните сделанные изменения.


Рис.16.13. Структура меню проектируемого текстового редактора

16.7. Написание процедур обработки событий

Написание процедур обработки событий и других подпрограмм является центральным звеном в процессе создания любого приложения, так как именно программный код реализует выполняемые им функции (См. Главы 4 – 15).

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

Выполните команду меню View – Code (Вид – Код), либо нажмите клавишу [F7]. Откроется окно кода (Рис.16.14).


Рис.16.14. Code Window (Окно кода)


В разделе General – Declarations (Общие – Описания) введите инструкции объявления глобальных переменных:


Dim ApplicationName As String ' название приложения

Dim FileNeedToSave As Boolean ' флаг сохранения


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

Здесь же введите текст пользовательских процедур ReadConfig, SaveConfig, SaveFile и CheckMenuEnabled, а также функции ReadFile.

Процедура чтения конфигурации из реестра — восстанавливает сохраненные ранее размеры и положение формы:


Sub ReadConfig ()

Height=GetSetting (App. EXEName, Name, «Height», Height) ' высота формы

Width=GetSetting (App. EXEName, Name, «Width», Width) ' ширина формы

Top=GetSetting (App. EXEName, Name, «Top», Top) ' верхний край формы

Left=GetSetting (App. EXEName, Name, «Left», Left) ' левый край формы

End Sub


Процедура записи конфигурации в реестр – сохраняет размеры и положение формы:


Sub SaveConfig ()

SaveSetting App. EXEName, Name, «Height», Height ' высота формы

SaveSetting App. EXEName, Name, «Width», Width ' ширина формы

SaveSetting App. EXEName, Name, «Top», Top ' верхний край формы

SaveSetting App. EXEName, Name, «Left», Left ' левый край формы

End Sub


Функция чтения файла с диска – считывает информацию из указанного файла:


Function ReadFile (strFileName As String) As String

Dim intFileNumber As Integer ' объявление переменной

intFileNumber = FreeFile () ' получение номера файла

Open strFileName For Binary As #intFileNumber ' открытие файла

ReadFile = Space (LOF (intFileNumber)) ' ограничение результата функции размером файла

Get #intFileNumber,, ReadFile ' чтение файла в переменную результата

Close #intFileNumber ' закрытие файла

End Function


Процедура записи файла на диск – записывает информацию в указанный файл:


Sub SaveFile (strFileName As String, strData As String)

If Dir (strFileName) <> «» Then ' если файл уже существует

If MsgBox («Перезаписать файл?», vbYesNo) = vbYes Then ' запрос у пользователя о возможности перезаписи файла

Kill strFileName ' удаление старого файла

Dim intFileNumber As Integer ' объявление переменной

intFileNumber = FreeFile () ' получение номера файла

Open strFileName For Binary As #intFileNumber ' открытие файла

Put #intFileNumber,, strData ' запись файла на диск

Close #intFileNumber ' закрытие файла

End If

End If

End Sub


Процедура проверки доступности пунктов меню – делает доступными или недоступными некоторые пункты меню в зависимости от текущего состояния приложения:


Sub CheckMenuEnabled ()

If Len (Text1.Text)> 0 Then ' если есть текст, тогда доступны:

mnuFileClose. Enabled = True ' Файл-Закрыть

mnuFileSave. Enabled = True ' Файл-Сохранить

mnuFileSaveAs. Enabled = True ' Файл-Сохранить как…

mnuFilePrint. Enabled = True ' Файл-Печать…

mnuEditSelectAll. Enabled = True ' Правка-Выделить все

Else ' иначе недоступны:

mnuFileClose. Enabled = False ' Файл-Закрыть

mnuFileSave. Enabled = False ' Файл-Сохранить

mnuFileSaveAs. Enabled = False ' Файл-Сохранить как…

mnuFilePrint. Enabled = False ' Файл-Печать…

mnuEditSelectAll. Enabled = False ' Правка-Выделить все

End If

If Text1.SelLength> 0 Then ' если выделен текст, доступны:

mnuEditCut. Enabled = True ' Правка-Вырезать

mnuEditCopy. Enabled = True ' Правка-Копировать

Else ' иначе недоступны:

mnuEditCut. Enabled = False ' Правка-Вырезать

mnuEditCopy. Enabled = False ' Правка-Копировать

End If

If Len(Clipboard.GetText)> 0 Then ' если в буфере обмена текст:

mnuEditPaste. Enabled = True ' доступна Правка-Вставить

Else ' иначе:

mnuEditPaste. Enabled = False ' недоступна Правка-Вставить

End If

End Sub


Теперь остается набрать код процедур обработки событий, возникающих при загрузке и выгрузке формы из памяти (Form_Load и Form_Unload), изменении ее размеров (Form_Resize), выборе каждого пункта меню (mnuEdit_Click, mnuEditCopy_Click, mnuEditCut_Click, mnuEditPaste_Click, mnuEditSelectAll_Click, mnuFile_Click, mnuFileClose_Click, mnuFileExit_Click, mnuFileNew_Click, mnuFileOpen_Click, mnuFilePrint_Click, mnuFileSave_Click, mnuFileSaveAs_Click и mnuHelpAbout_Click) и изменении текста в поле ввода (Text1_Change).


Процедура вызывается при загрузке формы:


Private Sub Form_Load ()

ApplicationName = Caption ' сохранение заголовка формы

FileNeedToSave = False ' сброс флага необходимости сохранения

ReadConfig ' чтение конфигурации из реестра

End Sub


Процедура вызывается при изменении размеров формы:


Private Sub Form_Resize ()

Text1.Top = ScaleTop ' установка верхнего края текстового поля

Text1.Left = ScaleLeft ' установка левого края текстового поля

Text1.Width = ScaleWidth ' установка ширины текстового поля

Text1.Height = ScaleHeight ' установка высоты текстового поля

End Sub


Процедура вызывается при выгрузке формы:


Private Sub Form_Unload (Cancel As Integer)

On Error GoTo CancelError ' на обработчик ошибок CancelError

Dim UserSelect As Integer ' объявление переменнойдля хранения выбора

If FileNeedToSave Then ' если требуется сохранение: запрос у пользователя

UserSelect = MsgBox («Сохранить изменения?», vbYesNoCancel)

Select Case UserSelect ' выбор варианта ответа:

Case vbYes ' вариант Да

If CommonDialog1.FileName = «» Then ' если имя не определено:

CommonDialog1.ShowSave ' вызов диалога Сохранить

End If

SaveFile CommonDialog1.FileName, Text1.Text ' вызов процедуры сохранения файла

Cancel = False ' отмены выгрузки формы не требуется

Case vbNo ' вариант Нет

Cancel = False ' отмены выгрузки формы не требуется

Case vbCancel ' вариант Отмена

Cancel = True ' отмена выгрузки формы необходима

End Select

End If

SaveConfig ' запись конфигурации в реестр

Exit Sub

CancelError: ' обработчик ошибок

Cancel = False ' отмены выгрузки формы не требуется

End Sub


Процедура вызывается при выборе меню Правка:


Private Sub mnuEdit_Click ()

CheckMenuEnabled ' вызов процедуры проверки доступности пунктов меню

End Sub


Процедура вызывается при выборе меню Правка-Копировать:


Private Sub mnuEditCopy_Click ()

Clipboard.SetText Text1.SelText ' копирование выделенного текста в буфер обмена

End Sub


Процедура вызывается при выборе меню Правка-Вырезать:


Private Sub mnuEditCut_Click ()

Clipboard.SetText Text1.SelText ' копирование выделенного текста в буфер обмена

Text1.SelText = «» ' очистка выделенного текста

FileNeedToSave = True ' установка флага необходимости сохранения

End Sub


Процедура вызывается при выборе меню Правка-Вставить:


Private Sub mnuEditPaste_Click ()

Text1.SelText = Clipboard.GetText ' вставка текста из буфер обмена

FileNeedToSave = True ' установка флага необходимости сохранения

End Sub


Процедура вызывается при выборе меню Правка-Выделить все:


Private Sub mnuEditSelectAll_Click ()

Text1.SelStart = 0 ' установка начала выделения

Text1.SelLength = Len (Text1.Text) ' установка размера выделения

End Sub


Процедура вызывается при выборе меню Файл:


Private Sub mnuFile_Click ()

CheckMenuEnabled ' вызов процедуры проверки

«доступности пунктов меню

End Sub


Процедура вызывается при выборе меню Файл-Закрыть:


Private Sub mnuFileClose_Click ()

On Error GoTo CancelError ' на обработчик ошибок CancelError

Dim UserSelect As Integer ' объявление переменнойдля хранения выбора

If FileNeedToSave Then ' если требуется сохранение: запрос у пользователя

UserSelect = MsgBox («Сохранить изменения?», vbYesNoCancel)

Select Case UserSelect ' выбор варианта ответа:

Case vbYes ' вариант Да

If CommonDialog1.FileName = «» Then ' если имя не определено:

CommonDialog1.ShowSave ' вызов диалога Сохранить

End If

SaveFile CommonDialog1.FileName, Text1.Text ' вызов процедуры сохранения файла

Caption = ApplicationName ' сброс заголовка формы

Text1.Text = «» ' очистка текста

Case vbNo ' вариант Нет

Caption = ApplicationName ' сброс заголовка формы

Text1.Text = «» ' очистка текста

Case vbCancel ' вариант Отмена

End Select

End If

CancelError: ' обработчик ошибок

End Sub


Процедура вызывается при выборе меню Файл-Выход:


Private Sub mnuFileExit_Click ()

Unload Form1 ' выгрузка формы

End Sub


Процедура вызывается при выборе меню Файл-Создать:


Private Sub mnuFileNew_Click ()

On Error GoTo CancelError ' на обработчик ошибок CancelError

Dim UserSelect As Integer ' объявление переменной

«для хранения выбора

If FileNeedToSave Then ' если требуется сохранение: запрос у пользователя

UserSelect = MsgBox («Сохранить изменения?», vbYesNoCancel)

Select Case UserSelect ' выбор варианта ответа:

Case vbYes ' вариант Да

If CommonDialog1.FileName = «» Then ' если имя файла не определено:

CommonDialog1.ShowSave ' вызов диалога Сохранить

End If

SaveFile CommonDialog1.FileName, Text1.Text ' вызов процедуры сохранения файла

FileNeedToSave = False ' сброс флага необходимости сохранения

CommonDialog1.FileName = «» ' очистка имени файла

Caption = ApplicationName ' сброс заголовка формы

Text1.Text = «» ' очистка текста

Case vbNo ' вариант Нет

FileNeedToSave = False ' сброс флага необходимости сохранения

CommonDialog1.FileName = «» ' очистка имени файла

Caption = ApplicationName ' сброс заголовка формы

Text1.Text = «» ' очистка текста

Case vbCancel ' вариант Отмена

End Select

End If

CancelError: ' обработчик ошибок

End Sub


Процедура вызывается при выборе меню Файл-Открыть…:


Private Sub mnuFileOpen_Click ()

On Error GoTo CancelError ' на обработчик ошибок CancelError

Dim UserSelect As Integer ' объявление переменной для хранения выбора

If FileNeedToSave Then ' если требуется сохранение: запрос у пользователя

UserSelect = MsgBox («Сохранить изменения?», vbYesNoCancel)

Select Case UserSelect ' выбор варианта ответа:

Case vbYes ' вариант Да

If CommonDialog1.FileName = «» Then ' если имя не определено:

CommonDialog1.ShowSave ' вызов диалога Сохранить

End If

SaveFile CommonDialog1.FileName, Text1.Text ' вызов процедуры сохранения файла

FileNeedToSave = False ' сброс флага необходимости сохранения

Caption = ApplicationName ' сброс заголовка формы

Text1.Text = «» ' очистка текста

Case vbNo ' вариант Нет

FileNeedToSave = False ' сброс флага необходимости сохранения

Caption = ApplicationName ' сброс заголовка формы

Text1.Text = «» ' очистка текста

Case vbCancel ' вариант Отмена

End Select

End If

CommonDialog1.ShowOpen ' вызов диалога Открыть

Caption = ApplicationName & « (» & CommonDialog1.FileTitle &»)» ' добавление имени файла в заголовок формы

Text1.Text = ReadFile(CommonDialog1.FileName) ' вызов функции чтения файла

FileNeedToSave = False ' сброс флага необходимости сохранения

CancelError: ' обработчик ошибок

End Sub


Процедура вызывается при выборе меню Файл-Печать…:


Private Sub mnuFilePrint_Click ()

On Error GoTo CancelError ' на обработчик ошибок CancelError

CommonDialog1.ShowPrinter ' вызов диалога Печать

Printer.Copies = CommonDialog1.Copies ' установка количества копий

Printer. Orientation = CommonDialog1.Orientation ' … и ориентации

Printer.Print Text1.Text ' печать всего текста

Exit Sub

CancelError: ' обработчик ошибок

End Sub


Процедура вызывается при выборе меню Файл-Сохранить:


Private Sub mnuFileSave_Click ()

On Error GoTo CancelError ' на обработчик ошибок CancelError

If CommonDialog1.FileName = «» Then ' если имя не определено:

CommonDialog1.ShowSave ' вызов диалога Сохранить

Caption = ApplicationName & « (» & CommonDialog1.FileTitle &») « ' добавление имени файла в заголовок формы

End If

SaveFile CommonDialog1.FileName, Text1.Text ' вызов процедуры сохранения файла

FileNeedToSave = False ' сброс флага необходимости сохранения

CancelError: ' обработчик ошибок

End Sub


Процедура вызывается при выборе меню Файл-Сохранить как…:


Private Sub mnuFileSaveAs_Click ()

On Error GoTo CancelError ' на обработчик ошибок CancelError

CommonDialog1.ShowSave ' вызов диалога Сохранить

Caption = ApplicationName & « (» & CommonDialog1.FileTitle &»)» ' добавление имени файла в заголовок формы

SaveFile CommonDialog1.FileName, Text1.Text ' вызов процедуры сохранения файла

FileNeedToSave = False ' сброс флага необходимости сохранения

CancelError: ' обработчик ошибок

End Sub


Процедура вызывается при выборе меню О программе…:


Private Sub mnuHelpAbout_Click ()

MsgBox «TextEdit ver. 1.00», vbOKOnly, «О программе» ' вывод окна сообщения с информацией о текущей версии

End Sub


Процедура вызывается при изменении текста:


Private Sub Text1_Change ()

FileNeedToSave = True ' установка флага необходимости сохранения

End Sub


После завершения ввода кода щелкните мышью на кнопке Save Project (Сохранить проект) панели инструментов (Tool Bar), либо выберите команду меню File – Save Project (Файл – Сохранить проект) для сохранения всех компонентов проекта на диск.


Страницы книги >> Предыдущая | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Следующая
  • 0 Оценок: 0

Правообладателям!

Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.


Популярные книги за неделю


Рекомендации