Open txtFileName For Input As #1
'Определение и запись в переменную кол-ва символов в файле
FileRecords = FileLen(txtFileName)
'Считывание содержимого файла в переменную
FileText = Input(FileRecords, #1)
'Запись содержимого файла в текстовое поле
Text1.Text = FileText
'Закрытие файла
Close
End If
End Sub
'Процедура записи содержимого текстового поля в файл
Private Sub Command2_Click()
'Вызов окна сохранения файла
CommonDialog1.ShowSave
'Запись пути и имени файла в переменную
txtFileName = CommonDialog1.FileName
'Проверка содержимого переменной
If txtFileName <> "" Then
'Открытие файла для сохранения данных
Open txtFileName For Output As #1
'Запись текстового поля в переменную
FileText = Text1.Text
'Запись переменной в файл
Print #1, FileText
'Закрытие файла
Close
End If
End Sub
Private Sub Command3_Click()
Text1.Text = ""
End Sub
Сохраните проект. Выполните компиляцию. Закройте Visual Basic.
Загрузите исполняемый файл проекта.
Откройте текстовый файл fl.txt. Отредактируйте его и сохраните.
Убедитесь в том, что все изменения, внесённые в файл, сохранились.
Вопросы для самоконтроля
1. Какие элементы управления используются для ввода информации?
2. Приведите пример программного кода для ввода текстовой информации.
3. Какие функции используются для преобразования текстовой информации в цифровую и наоборот?
4. Приведите пример программного кода записи цифровой информации в текстовое поле.
5. Основные приёмы работы с файлами последовательного доступа.
6. Какие операторы используются для открытия и закрытия текстовых файлов?
- ТИПЫ ПРОЕКТОВ
Основу проекта Visual Basic составляет форма. Она является контейнером для элементов управления, которые размещаются на ней. Сохраняется форма в отдельном файле, что позволяет её использовать в других проектах.
Приложение может состоять из нескольких форм. При этом подчинённые формы могут быть вызваны из основной. Различают простые и модальные формы. При обращении к простой форме используется метод Show. Одновременно можно загрузить несколько простых форм. При загрузке модальной формы работа всех остальных компонентов проекта блокируется до тех пор, пока модальная форма не будет закрыта. Для вызова модальной формы используется метод ShowvbModal.
Создание проекта, как правило, начинается с проектирования интерфейса. Интерфейс должен обеспечивать комфортные условия для работы пользователя, формы должны быть оптимально загружены элементами управления. В программировании на Visual Basic используют два вида интерфейсов.
Однодокументный интерфейс SDI (Single – Document Interface) – работа с одним документом в одном окне. Примером такого приложения может служить MS WordPad.
Многодокументный интерфейс MDI (Multiple – Document Interface) – работа в одной форме с любым количеством окон.
ЛАБОРАТОРНОЕ ЗАНЯТИЕ № 7
Цель занятия: ознакомить студентов с основными типами проектов Visual Basic, привить навыки создания интерфейса приложения.
Задание 1. Модальная форма
Создайте новый проект.
Разместите на форме три управляющие кнопки CommandButton1 – 3 как показано на рис. 35.
Создайте подчинённую форму ( Проект \ Добавить форму ). Для этого в окне Добавить форму (закладка Новый) выберите пиктограмму Dialog. На созданной форме разместите элемент управления Image1. Присвойте свойству Stretch значение True, свойству Visible – False. Загрузите картинку из Фотогаллереи (рис. 36). Создайте программный код.
Option Explicit
Private Sub CancelButton_Click()
Image1.Visible = False
End Sub
Private Sub OKButton_Click()
Image1.Visible = True
End Sub
Рис. 35. Основная форма
Рис. 36. Простая форма 1
Создайте ещё две формы Form2 и Form3. Для Form2 создайте интерфейс, приведённый на рис. 38 и программный код:
Option Explicit
Private Sub Command1_Click()
Image1.Visible = True
End Sub
Private Sub Command2_Click()
Image1.Visible = False
End Sub
Рис. 38. Простая форма 2
Для Form3 (рис.39) свойству ControlBox присвойте значение False.
Создайте программный код:
'Закрытие модальной формы
' Возврат в основную форму
Private Sub Command1_Click()
Unload Form3
Form1.Show
End Sub
Рис. 39. Модальная форма
Для Form1 создайте программный код:
Option Explicit
'Загрузка подчинённой формы 1
Private Sub Command1_Click()
Dialog.Show
End Sub
'Загрузка подчинённой формы 2
Private Sub Command2_Click()
Form2.Show
End Sub
'Загрузка модальной формы
Private Sub Command3_Click()
Form3.Show vbModal
End Sub
Сохраните проект и все его формы. Закройте Visual Basic. Загрузите исполняемый файл.
Откройте последовательно две подчинённые формы. Убедитесь в том, что каждая из них может стать активной и работоспособной.
Подключите модальную форму. Обратите внимание на то, что все формы проекта заблокированы.
Задание 2. Создание MDI – проекта с использованием мастера приложений, редактирование главного меню
Загрузите Visual Basic.
В окне Новый Проект выберите пиктограмму VB Application Wizard и нажмите на клавишу Открыть.
В окнеApplication Wizard – Introductionвыберите файл настройки из которого вы будете загружать установки. Если в работе мастера не будут использоваться установки, нажмите кнопку Next.
На втором шаге работы мастера выберите стиль интерфейса (MDI) и нажмите клавишу Next.
В третьем окне мастера можно выбрать пункты и команды меню. Нажмите клавишу Next.
В следующем окне мастера подключается мастер панели инструментов. Нажмите клавишу Next.
На пятом шаге мастера открывается диалоговое окно Ресурсов. Перейдите к следующему шагу.
На этом шаге можно включить в приложение возможность прямого выхода в Internet. Установите необходимые параметры, если это необходимо и нажмите кнопку Next.
В следующем окне мастера можно включить в проект типовые шаблоны окон диалогов.
На этом шаге можно спроектировать формы для управления базами данных.
Девятый шаг завершает работу мастера приложений. Кнопка Next становится недоступной. Нажмите кнопку Finish. Процесс создания приложения завершён.
На экране появятся форма MDI (frmMain) и дочерняя форма (frmDocument) рис. 40.
Перейдите в режим интерпретатора. Создайте три текстовых документа. Откройте текстовый документ fl.txt ( VB Учебные \ Проекты ).
Отредактируйте наименование пунктов меню в окне Редактора меню (Инструменты \ Редактор меню) рис. 41.
Измените английские наименования пунктов меню и команд на русские в строке Заголовка Редактора меню.
Символ & обозначает, что следующая за ним буква будет подчёркнута.
Сохраните проект. Закройте Visual Basic.
Откройте исполняемый файл проекта.
Создайте текстовый документ и сохраните его на винчестере.
Рис. 40. Окна форм проекта MDI
Рис. 41. Редактор Меню
Задание 3. Использование стандартных элементов управления Microsoft при создании проектов Visual Basic
Создайте новый проект.
Используя диалоговое окно Components ( Проект \ Компоненты ) выберите стандартную группу компонентов Microsoft Windows Common Controls-2 6.0.
Разместите на форме элемент управления MonthView.
Создайте календарь на полугодие (рис. 42). Для этого свойству MonthRows присвойте значение равное 2, а свойству MonthColumns – 3.
Рис. 42. Календарь
На форме (рис. 42) разместите пять текстовых полей (Text1 – Test5) и подписи (Label1 – Label5) для вывода информации о выбранной дате.
Дважды щёлкните по левой верхней кнопке со стрелкой. В окне кода введите программный код:
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
Text1.Text = MonthView1.Value
Text2.Text = MonthView1.Day
Text3.Text = MonthView1.Month
Text4.Text = MonthView1.Year
Text5.Text = MonthView1.Week
End Sub
Сохраните проект.
Закройте Visual Basic.
Загрузите исполняемый файл проекта. Проверьте работу приложения.
Вопросы для самоконтроля
- Что такое модальная форма?
- Какие типы интерфейсов используются при проектировании приложений на Visual Basic?
- Создайте SDI – проект с использованием мастера построения проектов.
- Отредактируйте меню SDI – приложения используя Редактор меню.
- Что такое Компоненты Visual Basic, как пополнить панель элементов управления новыми объектами?
РЕКОМЕНДАЦИИ ПО ПРОГРАММИРОВАНИЮ НА VB
Процесс программирования состоит из ряда последовательных этапов, которые позволяют создать компоненты программного кода в соответствие с алгоритмом решения задачи и её информационной структуры.
Программный код состоит из модулей. Существует три вида модулей:
─ модуль формы, который создаётся в окне формы (*.FRM);
─ стандартный модуль – содержит глобальные объявления переменных, процедур и функций (*.BAS);
─ модуль класса содержит уникальные разработки программного кода элементов управления (не имеет интерфейса).
Модуль состоит из процедур и функций. Функции отличаются от процедур тем, что они всегда возвращают значения, процедуры – никогда.
В основном выделяют процедуры двух типов:
─ общие процедуры – они не имеют связи с событиями;
─ процедуры обработки событий.
Каждая процедура содержит программный код, который позволяет реагировать одному элементу управления на одно из свойственных ему событий.
Создание программного кода включает следующие этапы:
─ создание интерфейса;
─ объявление переменных;
─ создание общих процедур;
─ создание процедур инициализации элементов управления;
─ создание процедур обработки событий;
─ тестирование программного кода;
─ опытная эксплуатация приложения на контрольном примере.
Создание интерфейса
Одной из самых важных частей проекта является интерфейс пользователя. С проектирования интерфейса начинается разработка программного кода. На этом этапе важно определить тип интерфейса MDI – многооконный интерфейс или SDI – однооконный интерфейс. Основным инструментом проектирования интерфейса является визуальная среда программирования. Компоненты, расположенные на панели элементов, являются основным строительным материалом. Каждый из них наделён свойствами и методами, реагирующими на определённый круг событий.
Объявление переменных
Информация, которая используется программным модулем (переменные, массивы), должна быть объявлена. Лучше всего это сделать вначале пути, тогда все используемые переменные станут доступными для всех процедур обработки событий данного модуля. Конечно, это необязательно. Можно использовать неявное объявление переменных. Такой подход позволяет экономить оперативную память. Однако при нынешних её объёмах выигрыш будет минимальным, а проигрыш в связи с потерей информации…
Создание общих процедур
Общие процедуры не связаны с событиями. Они могут содержать расчётные алгоритмы, которые неоднократно используются в приложении. Поэтому их целесообразно создавать один раз, и обращаться к ним из процедур обработки событий. Это разгрузит алгоритмическую часть приложения. Сделает её, более читаемой, а значит более защищённой от возможных ошибок.
Создание процедур инициализации элементов управления
Инициализация (определение начального состояния) элементов управления, как правило, осуществляется при создании интерфейса путём задания свойств этих элементов. Однако в процессе выполнения программы часто приходится изменять начальное состояние группы объектов. Эти операции можно выполнить непосредственно в теле процедуры обработки событий. Но, если таких объектов множество, это неизбежно приведёт к значительному увеличению программного кода и затруднит его обозримость. Поэтому целесообразно оформить переопределение свойств объектов в отдельной процедуре. Такой процедурой может стать общая процедура, тогда её преимущества станут очевидны.
Создание процедур обработки событий
Процедуры обработки событий – это реакция программного кода на возмущающие воздействия. Например, нажатие клавиши, щелчок мыши по элементу управления и т.п. При этом программный код должен отреагировать на событие в соответствии с алгоритмом решения задачи. Он может содержать любую конструкцию языка: следование, ветвление, циклы. Если предшествующие этапы были грамотно выполнены, то основное внимание разработчика будет уделено обеспечению корректной работы выбранной конструкции. Процедуры расчётного и организационного характера будут вызываться как готовые образования, не загромождая логику процедуры обработки событий.
Тестирование программного кода
Для тестирования программного кода можно привлечь независимого эксперта. Но, как правило, тестирование производит сам разработчик в процессе отладки программы, используя небольшие по объёму, но разнообразные по содержанию и структуре исходные данные. В таких условиях нет гарантии тому, что даже хорошо отлаженная программа, будет надёжно работать в реальных условиях. Поэтому за этапом тестирования программного кода всегда следует этап опытной эксплуатации на контрольном примере максимально приближённом к реальной ситуации.
Разумеется такая последовательность проектирования рекомендуемая. Однако все вышеперечисленные этапы, как правило, в том или ином порядке присутствуют при создании программного кода приложения.
ПРИЛОЖЕНИЕ 1. ТИПЫ ДАННЫХ
Таблица типов данных
Тип | Содержимое |
Boolean | Логическое значение (True или False) |
Byte | Однобайтное целое число (от 0 до 255) |
Integer | Целое число (от –32768 до +32767) |
Long | Длинное целое число (от –2147483648 до +214748647) |
Single | Число с плавающей запятой |
Double | Число с плавающей запятой двойной точности |
Currency | Денежная величина |
Decimal | Десятичное число |
Date | Дата / время |
String | Строковая переменная (до 65500 символов) |
Object | Объект |
Variant | Устанавливает тип данных в зависимости от содержимого |
Для явного объявления переменной используется оператор Dim, который имеет следующий синтаксис:
Dim Имя _переменной [As Тип _ данных]
В прямых кавычках [ ] указывается необязательный параметр. Имя переменной можно выбирать произвольно, но при этом следует соблюдать следующие правила:
─ имя переменной должно начинаться с буквы;
─ максимальная длина имени – 255 символов;
─ имена могут содержать буквы, цифры и символ подчёркивания (_), все другие символы недопустимы;
─ имя не может быть зарезервированным словом (например, Sub).
Примеры явного объявления переменных.
Dim Name As String
Dim Price As Currency
Dim Counter As Integer
Длина переменной типа String обычно ограничивается лишь операционной системой. Но при необходимости её можно указать явно. Для этого после типа переменной добавляют * и максимальное число символов.
Dim Имя _ переменной [As String] [* Число _знаков]
Например:
Dim Name As String * 30
Dim Street As String * 50
Таблица идентификаторов
Тип переменной | Знак | Пример |
Integer | % | Counter% |
Long | & | Nr& |
Single | ! | Result! |
Double | # | Number# |
Currency | @ | Summa@ |
String | $ | Name$ |
Например: Dim Name$
ПРИЛОЖЕНИЕ 2. КОНСТРУКЦИИ ЯЗЫКА
Конструкции языка принято называть структурами управления. В структурном программировании они позволяют управлять программой. Различают конструкции управления порядком выполнения команд и конструкции цикла.
Конструкция If … Then
Эта конструкция содержит операторы управления порядком выполнения команд или операторы ветвления. Синтаксис конструкции:
IfУсловие Then
[ Операторы 1 ]
[ElseIf Условие N Then
[ Операторы 2 ]
Else
[ Операторы 3 ] ]
End If
Эта конструкция может быть записана в одну строку. Но при более сложных условиях блочная запись удобнее. Использование блочного синтаксиса улучшает обозримость программы.
Конструкция Select Case
Эта конструкция позволяет выполнить одну из нескольких групп операторов в зависимости от значения условия. Инструкция Select Case имеет следующий синтаксис:
Select CaseПроверочное _выражение
[ CaseЗначение 1
[ Операторы 1 ]]
[ CaseЗначение 2
[ Операторы 2 ]]
[Case Else
[Операторы 3 ]]
End Select
Циклические конструкции предназначены для многократного выполнения одного или нескольких операторов. Различают два типа циклов:
─ циклы с заданным количеством проходов;
─ циклы, завершающиеся при выполнении определённого условия.
Конструкция For … Next.
Это конструкция с заданным количеством проходов имеет следующий синтаксис:
For Счётчик = Начальное _значение To Конечное _значение [ Step Шаг]
Операторы
Next [ Счётчик ]
В начале выполнения цикла Счётчик устанавливается в начальное значение. При каждом проходе переменная Счётчика увеличивается на 1 или на величину Шага. Если она достигает или становится больше (меньше, при отрицательном шаге) Конечного значения, Цикл завершается и выполняются следующие за ним операторы.
Если количество проходов зависит от условия используют:
─ цикл с предусловием, когда условие расположено в начале цикла;
─ цикл с после условием, когда условие находится в конце цикла.
Синтаксис цикла управляемого в начале:
Do [ { While | Until } Условие ]
[ Операторы ]
[ Exit Do ]
[ Операторы ]
Loop
Синтаксис цикла управляемого в конце:
Do
[ Операторы ]
[ Exit Do ]
[ Операторы ]
Loop [ { While | Until } Условие ]
Литература
1. Информатика. Базовый курс. Учебник для Вузов. Под ред. С.В. Симоновича. СПБ, Питер, 2000, 639 с.
2. Информатика. Учебное пособие. Под ред. Е.К. Хённера. М: Издательский центр «Академия», 1999, 816 с.
3. Visual Basic 6.0. Пер. с англ. С.- Петербург: БХВ – Санкт-Петербург, 1998, 992 с.
4. Visual Basic 6.0. Серия «Библиотека студента». Пер. с нем. К: Издательская группа BHV, 2000, 288 с..
5. Visual Basic 6. Специальный справочник. С.- Петербург: СПб Издательство «Питер», 2000, 415 с.
6. Самоучитель Visual Basic 6.0. С.- Петербург: Санкт-Петербург, 2000, 624 с.
* Раздел 2.2. Средства и технологии обработки информации. Тема 9. Основы алгоритмизации и программирования.
* Идентификатор – наименование задачи, предметная область – её содержание.
** Прототип будущей постановки задачи, сформированный на основании экспертной оценки предметной области..
* Relate – устанавливать связь. В качестве основного аппарата создания и оптимизации реляционных таблиц используются логика предикатов и реляционная алгебра, которую предложил математик фирмы IBM Edgar F. Codd.
* Например, расчёт суммы прихода (расхода) товаров по складу или месячный учёт движения товаров.
* Появляется в правом нижнем углу ячейки в виде маленького крестика при перемещении в эту точку указателя мыши.