78
Министерство образования и науки Челябинской области
Государственное бюджетное образовательное учреждение
профессиональная образовательная организация
«Златоустовский техникум технологий и экономики»
ГБОУ ПОО «ЗТТиЭ»
ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО VISUL BASIC 6.0
Златоуст
Содержание
Лабораторная работа № 1 5
Лабораторная работа № 2 8
Лабораторная работа № 3 9
Лабораторная работа № 4 11
Лабораторная работа № 5 15
Лабораторная работа № 6 18
Лабораторная работа № 7 21
Лабораторная работа № 8 24
Лабораторная работа № 10 29
Лабораторная работа № 11 33
Лабораторная работа № 12 36
Лабораторная работа № 13 38
Лабораторная работа № 14 39
Лабораторная работа № 15 41
Лабораторная работа № 16 43
Лабораторная работа № 17 47
Лабораторная работа № 18 50
Лабораторная работа № 19 53
Лабораторная работа № 20 57
Лабораторная работа № 21 59
Лабораторная работа № 22 62
Лабораторная работа № 23 64
Лабораторная работа № 25 73
«ПРОСТЕЙШАЯ ПРОГРАММА»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0: Label, CommandBatton, научиться пользоваться элементами управления и изменять их свойства
Задачи: Создать программу, которая при щелчке на кнопке, закрывает программу
Ход работы:
Познакомимся с формой
Форма – это заготовка окна будущей программы. Мы имеем дело с формой, пока занимаемся программированием. Когда программа будет готова, и мы ее запустим, форма превратится в полноценное окно. У любой программы должно быть хотя бы одно окно, значит форма. Сейчас создадим форму для нашей первой программы. Запустите систему VB – на экране появится диалоговое окно New Project (Создать проект). Выделите значок Standart EXE (Стандартный исполняемый файл), а затем щелкните на кнопке Открыть.
При создании проекта на экране появится пустая форма – заготовка окна будущей программы.
Создаем объект Надпись
Надпись содержит текст, который можно прочесть во время работы программы. ЕЕ можно создать с помощью компонента Label (надпись). Выберите этот компонент щелчком на кнопке панели компонентов. Наведите указатель мыши на форму и нажмите левую кнопку. Не отпуская ее, переместите мышь право-вниз – за указателем потянется серая рамка. Внутри этой рамки и будет создан объект Надпись. Запомните этот прием работы с мышью. Он называется протягиванием и используется при создании на форме любых объектов. Объект, помещенный на форму, отмечен квадратными маркерами по углам и сторонам. С помощью этих маркеров можно изменять размеры объектов. Наведите указатель мыши на маркер, зацепите его нажатием левой кнопки и перетащите в новое место, не отпуская кнопку. После отпускания кнопки размеры объекта изменяются.
Настраиваем свойства объекта
Создали сой первый объект - Label1 (надпись1), однако нужного текста в этом объекте пока нет – его тоже нужно создать. Для этого познакомимся со свойствами объектов. Все объекты содержать свойства. Разные объекты имеют разные свойства. Для объекта Label1 содержание надписи – это одно из его важнейших свойств. Пока его не задали, считается, что содержание надписи совпадает с именем объекта. Поэтому вы и видите на экране подпись Label1. Текущий текст надписи показан прямо на форме. Сейчас это стандартный текст: Label1. Изменить его можно при помощи панели свойства Properties (Свойства). Имя выбранного объекта задается в раскрывающемся списке в верхней части панели – сейчас здесь как раз выбран объект Label1. За текст подписи отвечает свойство Caption (Заголовок). Чтобы изменить его, щелкните в правом столбце панели свойств напротив этого свойства. Введите текст, например: МОЯ ПЕРВАЯ ПРОГРАММА. Если значение свойства является текст, то в нем можно использовать и русские буквы. Однако русские буквы недопустимы в именах объектов.
Настроим размер объекта по длине надписи
Не будем делать это вручную, а найдем на панели свойств свойство AutoSize (Автоподбор). Зададим для него значение True (Да). При этом включится режим подбора размера поля по его содержимому.
Зададим цвет шрифта
За него отвечает свойство ForeColor (Цвет переднего плана). Если щелкнуть на поле этого свойства, в нем появится раскрывающая кнопка. По щелчку на ней откроется список системных цветов (Вкладка Sysrem). Дополнительные цвета можно выбрать на вкладке Palette (Палитра).
Зададим стиль шрифта
Для этого воспользуемся свойством Font (Шрифт). При его выборе в правом столбце появляется специальная кнопка. Если щелкнуть по ней, откроется диалоговое окно Выбор шрифта. Свойство Font (Шрифт) содержит много разных параметров. С помощью диалогового окна Выбор шрифта можно сразу настроить все, что нужно.
Создаем командную кнопку.
Командная кнопка с надписью создается с помощью компонента CommandBatton (Командная кнопка). Поместить ее на форму можно точно так же, как надпись. Обычно размер кнопки делают таким, чтобы подпись на ней располагалась аккуратно. Кнопку сделаем небольшой. Текст на ней, как и в случае надписи, задается свойством Caption (Заголовок). Допустим, на ней будет написано: ЗАКРЫТЬ!
Реакция на кнопку
Созданная кнопка сейчас служит лишь украшением окна. При щелчке на ней должно происходить какое-то событие, но программа о нем пока ничего не знает. Ваша задача – указать программе, что она должна делать при щелчке на кнопке. То есть Вы должны написать программный код, по которому будет обрабатываться щелчок.
Чтобы задать реакцию на кнопку, выделите ее на форме (кнопка помечается маркерами). Затем на ней нужно щелкнуть дважды подряд. Откроется окно кода формы.
В верхней форме окна располагаются два раскрывающихся списка. Левый список содержит все объекты, имеющиеся на форме. Ваша командная кнопка уже выбрана в списке, поэтому вы щелкнули именно на ней.
Раскрывающийся список справа содержит набор событий, связанных с выбранным объектом, на которые программа может реагировать. Первоначально в этом списке выбирается самое «естественное» событие для объекта. Для кнопки это щелчок (Click).
Процедуры
Процедура начинается с оператора Sub, за которым идет имя процедуры, а заканчивается оператором End Sub. Эти операторы система VB вставляет автоматически, чтобы было видно, где процедура начинается и где заканчивается. Осталось написать только операторы, описывающие, что происходит по щелчку на кнопке. Что бы было проще, текстовый курсов уже поставлен в нужное место. В вашем случае щелчок на кнопке должен завершать работу приложения и закрывать окно. В языке VB это достигается при помощи одного единственного оператора: END, который нужно вест в процедуру вручную.
Запуск программы
Ваша программа готова. Окно кода показывает, что в ней всего 3 оператора, из которых только один вы написали. Все остальное берет на себя система визуального проектирования. Давайте убедимся, что ваша программа работоспособна и правильна. Для этого дайте команду Run → Start (Выполнение → Запуск). То же самое можно сделать, нажав клавишу F5.
«СОХРАНЯЕМ СВОЙ ПРОЕКТ»
Цель работы: Научиться сохранять проекты, выполненные Visual Basic 6.0.
Задачи: Сохранить свой первый проект.
Ход работы:
В первой лабораторной работе вы научились создавать свой первый проект. Однако вы не сделали одно важное дело – не сохранили свой проект. Давайте придумаем ему имя, например ЗАКРЫВАТЕЛЬ, и научимся сохранять свои труды.
Для системы VB разрабатываемая программа - это проект, поэтому сохранять надо именно проект.
Сохранение проекта состоит из 3-х шагов:
создание папки для проекта внутри папки C:/VB;
сохранение файла формы внутри папки проекта;
сохранение файла проекта внутри папки проекта.
Начать эту операцию можно командой File → Save Project (Файл → Сохранить проект). Откроется диалоговое окно Save File As (Сохранить файл как). Ранее создали папку для ваших программ, которая называется VB и находится на диске С: С/VB. Найдите эту папку и в ней создайте вложенную папку с названием вашего проекта.
Сохраняем файлы
Теперь вы готовы записать в эту папку файлы программы. Сначала вы сохраняете файл формы. Для него уже подобрано имя Form1. вы можете его использовать. Щелкните на кнопке Сохранить – система сохранит форму в файле Form1.ftm.
Теперь надо сохранить файл проекта. На экране сразу же появится диалоговое окно Save Project As (Сохранить проект как). Оно уже настроено на вашу папку. Снова щелкните на кнопке Сохранить – запишется файл Project1.vbp.
Каждая ваша программа – отдельный проект. Научитесь хранить каждый проект в отдельной папке.
«УЧИМ ПРОГРАММУ ЧИТАТЬ»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 Label,
Textbox, Button, научиться пользоваться элементами управления
Задачи: Создать по пунктам в лабораторной работе программу, которая меняет заголовок окна.
Ход работы:
В прошлой лабораторной работе вы научились создавать текстовое сообщение. Для этого использовался компонент Label (Надпись). Этот текст написал программист, пользователь увидит его в окне, но изменить уже не сможет.
Описание новой программы.
Для того чтобы пользователь мог вводить в программу свой собственный текст служит элемент управления, который называется Текстовое поле (Textbox). Текст можно в него можно не только вносить, но редактировать. При щелчке на этом элементе управления в нем появляется курсор. Он показывает позицию ввода символов.
Окно нашей программы будет содержать 3 элемента управления: надпись, текстовое поле и командную кнопку. В надписи буде написано сообщение пользователю о том, что он должен сделать. В текстовом поле он сможет ввести то, что захочет, а при щелчке на командной кнопке этот текст будет подставляться в строку заголовка окна. В общем программа позволит изменять заголовок. Назовите проект ЧИТАТЕЛЬ.
Форма и компоненты.
Запустите систему VB и создайте новый проект. Сохраните его в папке Читатель. Для программы вам нужны 2 знакомых компонента: Label (Надпись) и Button (Кнопка) – и один незнакомый: TextBox (Текстовое поле).
Настраиваем форму.
Форма, на которую вы помещаете объекты сама тоже объект. Название объекта – формы задается по общему правилу – Form1, а свойства доступны в палитре Properties (Свойства). Первоначально форма – единственный объект, который есть в программе. Она уже выбрана в панели свойств.
Начнем настройку формы со строки заголовка. Текст заголовка хранится в свойстве Caption (Заголовок). У новой формы это свойство имеет значение Form1, такое же как имя объекта. Щелкните в правом столбце палитры свойств напротив этого свойства и введите слово Читатель – новое значение этого свойства.
Создаем надпись
Поместим на форму компонент Label (Надпись). Найдите нужную кнопку на панели компонентов и щелкните на ней.
Нарисуйте объект Label1 на форме протягиванием мыши. Переместите его в левый верхний угол формы. Текст надписи измените на «Введите новый заголовок».
Добавляем текстовое поле
Текстовые поля служат для ввода символов. Обычно они рассчитаны на одну строку текста, поэтому и созданный нами объект Text1 должен иметь небольшую высоту.
Щелкните на кнопке TextBox (Текстовое поле) на панели компонентов. Текстовое поле тоже создается протягиванием мыши. Если объект получился высоким, уменьшите его высоту. Для этого служат маркеры изменения размеров. Ширину поля сделайте побольше.
Настраиваем текстовое поле
Объект Text1 содержит одну строку текста, но в отличие от знакомого объекта Label1 он не имеет свойства Caption (Заголовок). Свойство в котором хранится содержимое текстового поля, называется Text (Текст). Сюда система VB заносит имя созданного объекта - строку Text1.
Сделаем так: Запишем в поле текст, который в данный момент виден в строке заголовка окна. В момент запуска программы в строке будет написано: Читатель. Запишите в качестве свойства Text значение Читатель.
Добавляем кнопку
Командная кнопка нужна, чтобы при ее нажатии программа прочитала то, что пользователь ввел в текстовое поле, и поместил этот текст в строку заголовка окна. Ей соответствует компонент CommandButton (Командная срока). Выберете его на панели компонентов, а затем протягиванием нарисуйте кнопку на форме.
Смените надпись на кнопке. Обычно надпись описывает действие, которое выполняется при ее нажатии. Замените на «Сменить заголовок окна».
Нажатие кнопки с клавиатуры
Для того чтобы после ввода текста в поле при нажатии на кнопку Enter заголовок изменился необходимо для свойства Default (по умолчанию) выбрать в раскрывающемся списке значение True (Да).
Программируем работу кнопки
Осталось самое главное – запрограммировать работу командной кнопки так, чтобы текст, введенный пользователем, становился заголовком окна.
Дважды щелкните на кнопке формы. Откроется окно кода программы. В нем появится заготовка процедуры Command1_Click. Эта процедура вызывается при щелчке на кнопке, сделанным во время работы.
Необходимо перенести содержимое текстового поля в заголовок окна, а это значит, что свойство Caption формы надо записать то, что находится в свойстве Text текстового поля. Сделать это можно с помощью оператора присваивания:
Form1.Caption=Text1.Text
Напомним, что знак «=» не означает равенство. Он копирует значение свойства Text текстового поля в свойства Captoin формы. Это все, что нужно, чтобы программа работала.
Запустите программы с помощью F5.
«СОЗДАЕМ ЭЛЕКТРОННЫЙ АЛЬБОМ»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 Image, CommonDialog, научиться пользоваться элементами управления и их свойствами
Задачи: Создать электронный альбом по пунктам лабораторной работы электронный альбом, в котором можно открывать картинки из файла.
Ход работы:
Ваши программы уже умеют воспринимать на экране текст, причем двух видов: тот, что заложил в программу ее автор и тот, который ввел пользователь во время работы с готовой программой. Здесь вы научите программу показывать рисунки.
Программа будет работать так: после запуска в ее окне изображается рисунок, который заготовил программист, а дальше пользователь может на нем щелкнуть и выбрать в открывшемся диалоговом окне любой иной рисунок, который он хочет посмотреть.
Окно готовой программы будет содержать только один элемент управления – рисунок.
Начало работы
Запустите систему VB и создайте свой новый проект. Сохраните его в папке Электронный альбом. Переименуйте форму так, чтобы в строке заголовка вместо слова Form1 была запись Электронный альбом. Это вы уже знаете, как делать.
Теперь создайте на форме область, в которой будут показывать рисунки. Для этого служит компонент Image (Рисунок). Выберете его на панели компонентов и протягиванием мыши создайте на форме Image1. Это область рисунка. Она должна занимать почти всю форму.
рисунка. Она должна занимать почти всю форму.
Обходимо настроить области рисунка. На панели свойств выберете объект Image1 и разыщите свойство, которое называется Stretch (Растяжка). У него только 2 состояния: True или False (Включено или выключено). Если растяжка включена, то размер рисунка будет подгоняться под размер области рисунка: большой рисунок сожмется, а маленький растянется. Включите для свойства Stretch (Растяжка) значение True (Да).
У области просмотра рисунка есть еще одно полезное свойство называется BorderStyle (Тип рамки). Выберете для него значение 1 – Fixed Single (Тонкая фиксированная). Рисунок будет более четко выделяться на фоне окна.
Размещение исходного рисунка
При запуске программы нужно чтобы область рисунка не была пустой. Для этого найдите на панели свойств свойство Picture (Рисунок) и щелкните на нем. Напротив свойства появится кнопка с многоточием. Такие кнопки в системах визуального проектирования называются построителями. Знак многоточия говорит о том, что сейчас откроется диалоговое окно, в котором можно будет что – то выбрать и настроить. Щелкните на кнопке построителя - и откроется диалоговое окно – Load Picture (Загрузить рисунок), позволяющее выбирать рисунок, который будет сам загружаться при запуске программы. Назовем его исходным рисунком.
Исходный рисунок надо выбрать таким, который есть на компьютере любого пользователя нашей программы. На эту роль хорошо подходят рисунки, хранящиеся в папке C:/Windows, потому что они есть у всех, кто работает с О.С. Windows. Откройте папку C:/Windows и выберете файл Облака.bmp., после чего щелкните на кнопке Открыть.
Компонент - Невидимка
Для открытия стандартных диалоговых окон Windows нужен особый компонент, но его на привычной панели нет. В системе VB слишком много компонентов – заготовок, чтобы они все могли поместиться на этой панели. Чтобы воспользоваться каким – то другим, дополнительным компонентом, надо предварительно вызвать его кнопку на общую панель компонентов. Делается это так:
Щелкните на панели компонентов правой кнопкой мыши – откроется контекстное меню.
Выберете в нем пункт Components (Компоненты). Откроется одноименное диалоговое окно.
Установите в списке флажок возле пункта Microsoft Common Dialog Control 6.0 (Стандартное диалоговое окно).
Щелкните на кнопке OK. В нижней части панели компонентов появится дополнительная кнопка CommonDialog (Стандартное диалоговое окно).
Теперь необходимый компонент у нас есть, и вы можете создать с его помощью объект. Щелкните на кнопке компонента CommonDialog. Затем протягиванием выберете область окна формы вне рисунка облаков. В этом месте появится значок объекта CommonDialog1.
Настраиваем стандартное диалоговое окно
С помощью объекта CommonDialog1 можно открывать разные диалоговые окна. Поэтому у него очень много свойств. Искать нужные свойства на панели свойств неудобно. Система VB предлагает другой способ настройки.
Выберете на панели свойств пункт (Custon) (Дополнительно). Щелкните на кнопке построителя – откроется диалоговое окно Property Pages (Страницы свойств). Оно служит для упрощения настройки свойств сложных объектов. Откройте вкладку Open/Save As (открытие/сохранение). На ней собраны все свойства, имеющие отношение к загрузке и сохранению файлов.
В поле Dialog Title (Заголовок окна) можно указать текст заголовка открываемого диалогового окна. Введите в него текст Выбор изображения. В поле FileName (Имя файла) указывается имя выбранного файла. Так как у вас уже есть файл Облака.bmp., введите в это поле полный путь доступа к нему: C:\Windows\ Облака.bmp.
Объект Image (Изображение) может показывать только растровые изображения формата bmp. Введите в поле Filtr (Фильтр) такую строку:
Растровое изображение(*.bmp).
Если расширение имени файла не указано, оно берется из свойства DefaultExt(Стандартное расширение). Занесите в нужное поле значение bmp. Закройте диалоговое окно Property Pages (Страницы свойств) щелкните на кнопке OK. Пролистайте панель свойств и убедитесь в том, что сделанные настройки стали значениями свойств объекта.
Начинаем программирование
Сам по себе объект CommonDialog1 никак себя не проявляет – он невизуальный, и до тех пор, пока не произойдет нужное событие, диалоговое окно на экране не появится. Таким событием должен стать щелчок на изображении. Изображение, открытое в окне программы – это единственный элемент управления, для которого вы можете задать реакцию на щелчок.
Дважды щелкните на области изображения в окне формы – откроется окно кода. В нем сразу возникнет заготовка процедуры Image1_Click – обработчика щелчка на изображении.
Диалоговое окно для выбора файла отображается вызовом метода ShowOpen. Для показа других диалоговых окон служат другие методы. Добавьте всего лишь один оператор:
CommonDialog1. ShowOpen
Он откроет диалоговое окно на экране, и позволит пользователю разыскать нужную папку и выбрать файл с картинкой, и закроет диалоговое окно после нажатия на кнопке OK.
Загрузка изображения
Когда пользователь завершит работу с диалоговым окном загрузки файла, имя выбранного файла вместе с полным путем доступа к нему запомнится в свойстве CommonDialog1.FileName.
Такая запись называется точечной. И читается справа налево. Когда имя файла известно, то изображение можно загрузить. Для этого служит стандартная функция Load Picture. Полный путь поиска файла передается ей в качестве параметра. В итоге нужный оператор становится таким:
Image1.Picture= LoadPicture (CommonDialog1.FileName)
Этот оператор присваивания. Функция LoadPicture возвращает объект, содержащий выбранный рисунок, а вы приписываете этот объект свойству объекта Image1
Проверка программы
Ваша программа содержит 4 оператора, из которых 2 пришлось записать вручную.
«СОЗДАЕМ СТРОКУ МЕНЮ»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 Menu Editor, научиться пользоваться элементами управления и их свойствами
Задачи: Создать меню по пунктам лабораторной работы меню.
Ход работы:
Если программа управляется через меню, ей, в принципе, не нужны никакие другие элементы управления. Строка меню обычно дает доступ ко всем существующим командам.
Программа будет простой. Единственная команда, которую запрограммируем – это команда завершения работы с программой и выхода из нее.
Где взять меню
Запустите систему VB и создайте новый проект. Назовите его Мое меню и сохраните в папке Меню. Теперь можно приступать к созданию самого меню.
Создавать пункты меню по одиночке неудобно, поэтому в состав системы VB входит специальный редактор меню. Это особый инструмент, позволяющий создать свою структуру меню за одну операцию. Но прежде ее надо расписать (рисунок 1).

Рисунок 1 – блок-схема меню
Структура программы видна на рисунке. В строке меню имеется 2 пункта Файл и Выход. При щелчке на пункте Файл открывается меню, также содержащее 2 пункта: Дверь и Выход. Если щелкнуть на пункте Дверь, откроется вложенное меню, состоящее из единственного пункта меню Выход. Если выбрать любой из пунктов Выход, работа программы завершиться.
Создаем меню в редакторе
Чтобы запустить редактор меню, дайте команду Tools → Menu Editor (Сервис → Редактор меню). Откроется диалоговое окно Menu Editor (Редактор меню).
Поле Caption (Заголовок) должно содержать текст пункта меню, то есть то, что видно на экране. Создаем меню. Введите в это поле название первого пункта – Файл. В поле Name (Имя) задается имя объекта, описывающего пункт меню. Введите в поле Name (Имя) mneFile. Первый пун6кт меню готов. Обратите внимание на то, что текст пункта меню появится в нижней части окна. Щелкните на кнопке Next (Далее), чтобы перейти к созданию следующего пункта.
Меню правильно создавать по вертикали, а не по горизонтали. То есть сначала надо полностью сверху вниз задать структуру меню, относящуюся к первому пункту, и только потом переходить ко второму. Так, сто далее надо ввести пункт Дверь, находящийся внутри меню файл.
Чтобы показать, что находимся во вложенном меню, щелкните на кнопке со стрелкой → направленной вправо. Затем в поле Caption (Заголовок) введите содержимое пункта – Дверь, а имя в поле Name (Имя) – имя объекта – munDoor. Обратите внимание на то, что пункт вложенного меню отображается с отступом слева.
Далее можно действовать по такому же плану. Щелкните на кнопке Next (Далее). Щелкните на кнопке со стрелкой → вправо. Введите в поле Caption (Заголовок) содержимое пункта - Выход, а в поле Name (Имя) название объекта – munExit1.
Еще раз щелкните на кнопке Next (Далее) и нажмите кнопку со стрелкой ← влево. Введите в поле Caption (Заголовок) содержимое пункта меню – Выход, а в поле Name (Имя) название объекта – munExit2.
В последний раз щелкните на кнопке Next (Далее). Щелкните на кнопке со стрелкой ← влево. Введите в поле Caption (Заголовок) текст Выход, а в поле Name (Имя) название объекта - munExit3.
Теперь меню готово. Вот как оно должно выглядеть:
Файл
….Дверь
……..Выход
….Выход
Выход
Приступаем к программированию
Меню отображается не только в работающей программе, но и в окне формы. Щелкните на пункте Выход в строке меню. Откроется окно кода, в котором создается процедура – обработчик с именем munExit3_Click. Имя этой процедуры сформировано по знакомому нам правилу, а в качестве имени объекта, связанного с событием, состоит выбранное имя пункта меню.
Private Sub munExit3_Click()
……………………………….
End Sub
Впишите в эту процедуру End
Создадим обработчик для вложенного меню. Это делается точно так же. Если щелкнуть на пункте Файл, откроется вложенное меню, в котором можно выбрать пункт Выход. Будет создана процедура – обработчик munExit3_Click. В нее тоже можно вписать оператор End, и это будет правильно, но, если можно так сказать, не совсем по – программистки.
В программе пункт Выход повторяется 3 раза и программист должен позаботится о том, чтобы все они работали совершенно одинаково.
Самый грамотный подход здесь такой. Раз уж создали одну процедуру, выполняющую какую-то работу, то во втором и третьем не будем ее создавать, а вызовем исполнение ранее созданной процедуры. Поэтому в процедуру munExit2_Click впишем оператор вызова готового обработчика – процедуры munExit3_Click
Процедура выглядит так:
Private Sub munExit2_Click()
munExit3_Click
End Sub
Точно также выберете пункт Файл→ Дверь→ Выход. Создайте точно такой же обработчик и для последнего пункта меню.
Private Sub munExit1_Click()
munExit3_Click
End Sub
Контекстное меню
Можно открыть контекстное меню при щелчке правой кнопки мыши на окне программы.
Для открытия контекстного меню служит специальный метод формы – PopupMenu. Объект меню передается ему в качестве параметра.
Контекстное меню открывается по щелчку правой мыши, но его можно открывать при нажатии любой кнопки. Для этого достаточно описать обработчик события Click для формы. Выберете в окне кода в списке слева пункт Form, а в списке справа – событие Click. Добавте в нее оператор: Form1. PopupMenu mnuDoor. Этот оператор открывает меню Дверь в качестве контекстного. В итоге получится такая процедура:
Private Sub Form_Click()
Form1. PopupMenu mnuDoor
End Sub
«ПРОГРАММА УЧИТСЯ СОЧИНЯТЬ»
«ПРОЕКТ ПИСАТЕЛЬ»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 ComboBox, научиться пользоваться элементами управления и их свойствами
Задачи: Создать три открывающиеся списка по пунктам лабораторной работы три открывающиеся списка, которые по щелчку на кнопке меняют содержание.
Ход работы:
Программа будет работать так. Введем в нее три списка слов и научим ее брать одно слово из первого списка, одно – из второго и одно – из третьего. Из этих трех слов она и будет составлять предложения.
Грамматические эти предложения всегда будут правильны. А что до нелогически, так это дело наживное – просто пока программа не умеет думать.
Форма и компоненты
Запустите систему VB и создайте новый проект. Создайте его под именем Писатель.
Форма будет содержать четыре элемента управления: три раскрывающихся списка и одну командную кнопку. Раскрывающийся список задается компонентом ComboBox (Поле со списком). С помощью этого компонента можно создать два вида раскрывающихся списков или поле со списком.
Создаем и настраиваем списки
На панели компонентов выберете компонент ComboBox (Поле со списком). Поместите список на форму методом протягивания. Немного увеличьте ширину формы и разместите рядом с первым списком еще два таких же. Постарайтесь, чтобы созданные объекты имели одинаковую высоту.
Теперь нужно настроить созданные списки. Сначала определим тип списка. Он задается свойством Style (Стиль). Щелкните на панели свойств напротив этого свойства и выберете нужное значение из раскрывающегося списка. Вам нужен вариант 2 – Dropdown List (Раскрывающийся список). Проделаете эту операцию для всех трех списков. Для каждого из списков надо задать содержимое, то есть набор пунктов, которые в него должны входить. Содержимое списка – это одно из важнейших его свойств, так что вводить его надо на панели свойств объектов. Разыщите на ней свойство List (Список) – оно само представлено на панели свойств в виде раскрывающегося списка. Каждая строчка этого списка – будущий пункт вашего списка. Допустим, в первом списке у вас названия зверей: Акула, Воробей, Заяц, Кузнечик, Лягушка, Попугай, Слон.
После щелчка на раскрывающейся кнопке в первой свободной строчке списка появляется курсор. Сюда вводится текст пункта списка. Если после ввода нажать клавишу Enter, то список закроется. Поэтому для завершения пункта надо использовать комбинацию клавиш Ctrl+Enter – тогда список останется открытым, а курсор переместится на следующую строку. Нажать клавишу надо после того, как весь список будет сформирован.
Во второй список занесем наречия, характеризующие образ действия, например: быстро, высоко, громко, медленно, низко, плохо, сильно.
Наконец, в третий список занесите глаголы, описывающие разные действия, например: бегает, летает, плавает, поет, прыгает, прячется.
Добавление кнопки
Командную кнопку для «перемешивания» списков, создадим при помощи компонента
CommandButton (Командная срока). Поместим ее в нижнюю часть формы под раскрывающимися списками. Измените ее свойство Caption (заголовок), определяющее надпись на кнопке. Пусть на кнопке будет написано «Случайный выбор».
Первая проверка
Как ни странно, но программа уже почти готова. Ее уже можно запустить, нажав клавишу F5. Компоненты VB таковы, что все функции работы с раскрывающимися списками берут на себя. Не написав ни единой строчки кода, вы тем не менее можете выбирать, все, что захотите.
Однако в программе можно заметить два недостатка:
в начальный момент ваши списки пусты. В них ничего не отображается, а это неправильно. Хотелось бы, чтобы программа порадовала предложением типа «Заяц высоко летает».
не работает командная кнопка. Можно сколько угодно щелкать на ней – никакой видимой реакции не будет, так как вы пока не запрограммировали процедуру – обработчик нажатия кнопки.
Присвоение начальных значений: ищем событие
Первый выбор значения из списка должен выполняться сам, без вашего участия, то есть автоматически.
Как это сделать?
Это можно сделать, если научить программу реагировать на какое – то событие.
Такое событие есть. Оно связано с формой. Форма – это тоже объект, имеющий свойства, и у нее есть нужные вам событие – это загрузка. Она наступает в тот момент, когда на экране появляется окно будущей программы, но до того как в нем появятся элементы управления. Называется это событие - Load (Загрузка). С этим событием связана процедура – обработчик Form_Load. Именно ее используем, чтобы задать начальное значение списков.
Дважды щелкните на пустом месте формы, там где нет никаких объектов. Как всегда, откроется окно кода формы. Убедитесь, что в списке слева выбрана форма программы - Form, а в списке справа – событие Load(Загрузка). Система VB сразу создает нужную процедуру Form_Load.
То, какой элемент списка отображается на экране, определяется свойство ListIndex (Индекс по списку). Раскрывающиеся списки – это объекты с именами Combo1, Combo 2, Combo3. Нумерация пунктов в списках начинается с нуля. Индекс первого элемента имеет значение 0.
Сначала покажем первый элемент каждого списка. Для этого в процедуру Form_Load надо внести такие операторы:
Combo1.Listindex=0
Combo2.Listindex=0
Combo3.Listindex=0
Чтобы получить после запуска программы, какую – то конкретную фразу, можно выбрать и другие пункты списка. Только не забудьте, что нумерация элемента начинается с нуля.
Как запрограммировать неожиданность
Ваша следующая задача: сделать так, чтобы предложение было неожиданным и неподготовленным, в общем случайным. Для этого заготовленная командная кнопка Случайный выбор, которая пока еще не работает.
Для случайного выбора в системе VB есть специальная функция Rnd. Для этого есть стандартный прием – надо умножить значение функции Rnd на количество элементов списка и взять от получившегося произведения целую часть.
Допустим, в списке содержится 5 элементов. Чтобы найти индекс случайного элемента, надо взять целую часть от произведения 5*Rnd. А если в списке 10 элементов, то целую часть от произведения 10*Rnd.
Воспользуемся свойством ListCount объекта ComboBox. Она хранит количество элементов, имеющихся в списке. Правда, на панели свойств вы это свойство не найдете – это потому, что свойство ListCount предназначено только для чтения, его нельзя вводить вручную Значение ListCount для первого списка равно Combо1. ListCount, для второго - Combо2. ListCount и так далее.
Таким образом, чтобы найти случайный элемент для первого списка, надо просто вычислить выражение Int(Combо1. ListCount* Rnd), а для второго списка - Int(Combо2. ListCount* Rnd) и так далее.
Программируем кнопку
При щелчке на кнопке в каждом из трех раскрывающихся списков должен появляться какой – то элемент списка, взятый случайным образом.
Дважды щелкните на командной кнопке. Система VB откроет окно кода и создаст процедуру обработки щелчка мыши. Вставьте в нее следующие операторы:
Combo1.Listindex= Int(Combо1. ListCount* Rnd)
Combo2.Listindex= Int(Combо2. ListCount* Rnd)
Combo3.Listindex= Int(Combo3. ListCount* Rnd)
Неповторяющиеся случайные числа выдает функция RND.
Весь модуль должен выглядеть так:
Private Sub Command1_Click()
Combo1.Listindex= Int(Combо1. ListCount* Rnd)
Combo2.Listindex= Int(Combо2. ListCount* Rnd)
Combo3.Listindex= Int(Combo3. ListCount* Rnd)
Ens sub
Private Sub Form_Load()
Randomize timer
Combo1.Listindex=0
Combo2.Listindex=0
Combo3.Listindex=0
Ens sub
Для самостоятельной работы
Создать 5 списков в котором будут располагаться:
«УПРАВЛЕНИЕ ПРИ ПОМОЩИ ТАЙМЕРА»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 CommandButton, Timer, научиться пользоваться элементами управления и их свойствами
Задачи: Создать прыгающую кнопку по пунктам лабораторной работы прыгающую кнопку.
Ход работы:
Здесь вы создадите небольшую игру под названием «Поймай кнопку». Командная кнопка будет беспорядочно прыгать в окне программы. Тому кто захочет щелкнуть на ней, придется нелегко. Перепрыгивать из одного места в другое кнопка будет по сигналу, полученному от таймера.
Для оформления окна потребуется три объекта – прыгающая кнопка, кнопка, позволяющая выйти из программы и таймер. Он принадлежит форме. Он влияет на работу программы, но сам в программе не виден, на форме представляется своим заместителем – значком.
Создаем прыгающую кнопку
Запустите систему VB и создаете новый проект. Сохраните его в папке таймер.
Проектирование формы начнем с размещения на ней кнопки и ее настройки. Выберете на панели компонентов компонент «Командная кнопка» и нарисуйте кнопку в верхнем левом углу формы методом протягивания.
Задайте на нее следующие свойства:
Заголовок. Введите надпись, которая будет изображена на кнопке, например Нажми сюда!
TabStop (Доступна по клавише Тab). Это свойство разрешает выбрать данный элемент управления клавишей Тab. Здесь клавиатурой пользоваться нельзя. Чтобы запретить, задайте этому свойство значение False (Нет)
Visible (Видима). Сначала кнопка должна быть невидима, чтобы пользователь не знал, где она находится. Задайте этому свойству значение False (Нет).
Кнопка должна перемещаться по окну. Пусть будет 9 мест, в которых кнопка может появиться. Самое трудное – точно подобрать размеры кнопки и клеток, чтобы окно выглядело аккуратным. Зададим для кнопки значение высоты равным 500 – свойство Height (высота) – и значение ширины равным 800 – свойство Width (Ширина).
Расстояние между разными положениями кнопки должно быть больше, чем ширина и высота кнопок. Пусть оно составляет по горизонтали 900, а по вертикали 600. Мы не можем сразу же присвоить эти значения каким-то свойствам, но они понадобятся нам при программировании.
Пусть в левом верхнем положении расстояние между кнопкой и краями формы составляет 200. Задайте значение 200 для свойств кнопки Left (Слева) и Top (Сверху). Теперь мы можем подсчитать, какой размер должно иметь окно программы. По горизонтали он составит 200+900+900+800+200=3000. По вертикали это будет 200+600+600+500+200=2100. Щелкните на форме и задайте значение 3000 для свойства формы ScaleWidth (Внутренняя ширина). При вертикали нужен запас – ведь в окне будет еще закрывающая кнопка. Поэтому задайте для свойства ScaleHeight (Внутренняя высота) значение 2800. Чтобы размер окна нельзя было изменить в ходе работы, задайте для свойства BorderStyle (Тип границы) значение 1 – Fixed Single (Тонкая фиксация)
Создаем кнопку для закрытия окна.
Выберите компонент «Командная кнопка» на панели компонентов и нарисуйте кнопку в нижней части формы методом протягивания. Задайте заголовок «Выход». Кроме того задайте значение True (Да) для свойства Default (по умолчанию) – тогда фокус ввода всегда будет принадлежать этой кнопке и клавиша Enter накрепко будет связана только с ней.
Сразу задайте размеры и положение этой кнопки:
для свойства Left (слева) – 1100
для свойства Top (сверху) – 2100
для свойства Width (ширина) – 800
для свойства Height (высота) - 500
Теперь кнопка имеет те же размеры, что и подвижная кнопка и аккуратно расположена в нижней части окна.
Добавляем и настраиваем таймер
Пришло время добавить и настроить таймер. Щелкните на кнопке Timer (Таймер) на панели компонентов. Таймер надо расположить за пределами кнопок. Этот объект отображается на форме в виде значка фиксированного размера. В окне работающей программы его не видно.
Самое важное свойство таймера – Interval (Интервал). Оно указывает, когда в следующий раз таймер должен сработать. Промежуток времени задается в тысячных долях секунды – миллисекундах. Пусть кнопка прыгает на новое место каждые полсекунды. Задайте для этого свойства значение 500.
Приступаем к программированию
Начнем с того, что запрограммируем прыжки кнопки по полю формы. Такие прыжки должны происходить по сигналу, поступающему от таймера. Сигнал таймера – это событие Timer – единственное событие, связанное с таймером. Чтобы открыть окно кода и создать заготовку процедуры Timer1_Timer для обработки этого события, дважды щелкните на значке таймера.
Что нужно сделать? Изменить положение кнопки. Пусть все положения кнопки перенумерованы, как показано на рисунке 1.
| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |
Нумерация начинается с нуля – в этом случае программа получится проще. Обратите внимание на то, что если к номеру прибавить число 3, то вы оказываетесь в следующей строке, а если число 1, то в следующем столбце.
Это позволяет вычислить положение кнопки для позиции с заданным номером так:
Сommand1.Top=200+600*(i\3)
Command1.Left=200+900*(i Mod 3)
Здесь знак «\» - это оператор целочисленного деления.
Оператор Mod вычисляет остаток от деления одного числа на другое.
Переменная i содержит номер клетки. С помощью умножения и сложения переходим от номера клетки к положению кнопки на форме.
Значение переменной I надо выбрать случайным образом. Это надо сделать до написанных выше операторов. Кроме того, надо сделать кнопку видимой. Для этого напишите еще 2 оператора:
I=int(9*Rnd)
Command1.Visible = True
Теперь процедура обработки событий таймера готова. В целом она выглядит так:
Private Sub Timer1_Timer()
I = Int(9 * Rnd)
Command1.Visible = True
Command1.Top = 200+600* (i\3)
Command1.Left = 200+900* (i Mod 3)
End Sub
Программируем прыгающую кнопку
В окне кода выберите в раскрывающемся списке слева объект Command1. Система Visual Basic создаст процедуру Command1_Click для обработки щелчка на прыгающей кнопке.
Если такой щелчок произошёл, значит, игра закончилась победой. Чтобы сообщить об этом, изменим надпись на кнопке. Кроме того отключим ее, чтобы на ней больше нельзя было щёлкать. Это можно сделать так:
Private Sub Command1_Click()
Command1.Caption = “Готово!”
Command1.Enabled = False
End Sub
Таймер продолжает работать, а значит, не более чем через полсекунды кнопка опять исчезнет с экрана. Поэтому нам надо таймер отключить. Это можно сделать, изменив свойство Enabled (Включен), которое показывает, включен ли таймер:
Timer1.Enabled = False
Последние штрихи
Программа уже почти готова, остались последние штрихи. Во-первых, еще не запрограммировали кнопку ВЫХОД. Дважды щелкните на ней и впишите в текст созданной процедуры единственный оператор:
End
Во-вторых, надо сделать так, чтобы случайные числа не повторялись. Для этого надо создать процедуру обработки загрузки формы Form_Load. Добавьте в нее оператор:
Randomize Timer
Для самостоятельной работы
Создайте еще 2 кнопки, которые будут регулировать скорость кнопки: Медленнее и Быстрее.
«КАК ИЗ ПОМИДОРА СДЕЛАТЬ ГРУШУ»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 CommandButton, научиться пользоваться элементами управления и их свойствами
Задачи: Создать по пунктам лабораторной работы кнопку, которая при перетаскивании меняет рисунок.
Ход работы:
В программе будет всего один объект – командная кнопка. Но эта кнопка будет необычная, графическая с картинкой. Ее и можно будет перетаскивать. Как и куда будет переноситься кнопка, в общем все равно. Но в процессе перетаскивания на кнопке будут изменяться картинки. Чтобы на кнопке могли отображаться картинки, их надо подготовить заранее.
Создаем форму
Запустите программу VB и создайте новый проект. Сохраните его под именем Трансформер. Выберите компонент «Командная кнопка» и нарисуйте командную кнопку в любом месте формы методом протягивания.
Нужно оформить кнопку как графическую и подобрать для нее подходящие размеры. Для этого изменим ряд ее свойств. Сначала подберем размеры. Чтобы размеры кнопки соответствовали величине рисунков зададим для свойств Width (Ширина) и Height (Высота) значение 1400. Затем надо указать, что у кнопки может быть рисунок, то есть кнопка графическая. Для этого надо выбрать для свойства Style (Стиль) значение 1- Graphical (Графическая).
Надпись на кнопке не нужна. Удалите ее. Рисунок на кнопке задается свойством Picture (Рисунок). Щелкните на этом свойстве, а затем по кнопке, откроется диалоговое окно Load Picture (Загрузить рисунок). С его помощью откройте папку C:\WINDOWS\ Кофейня. bmp, выберите его и щелкните на кнопке Открыть.
Начало перетаскивания
Пусть кнопка двигается вместе с указателем мыши. Перетаскивание происходит в три этапа. В нем можно выделить начало, середину и конец. В начале зацепляем объект, в середине – тащим его и в конце – бросаем.
Чтобы начать перетаскивание нужно использовать другое событие: MouseDown (Нажатие кнопки мыши). Щелкните на графической кнопке правой кнопкой мыши. Выберите в открывающемся контекстном меню пункт View Code (Показать код). В окне кода выберите в списке справа событие MouseDown. Система VB создает обработчик этого события – процедуру Command1_MouseDown.
В эту процедуру передаются параметры X и Y. Они указывают положение указателя в момент нажатия кнопки мыши в пределах объекта. Поэтому объявим в области общих описаний переменные cx и cy.
Dim cx As Single, cy As Single
В процедуре Command1_MouseDown запишите в эти переменные текущие координаты указателя мыши:
cx=X
cy=Y
В начале перетаскивания должна произойти первая трансформация кнопки – рисунок на ней изменяется. Чтобы изменить рисунок, надо изменить свойство Picture (Рисунок) вашего объекта. Записать туда новое изображение можно с помощью функции LoadPicture. Нужный оператор будет выглядеть так:
Command1.Picture = LoadPicture("C:\WINDOWS\Кофейня.bmp")
Теперь нужно сообщить программе что начинается перетаскивание. Это делается с помощью метода Drag для перетаскивания объекта. Этому методу надо передать один параметр – специальную константу:
Command1.Drag vbBeginDrag
Середина перетаскивания
Чтобы менять положение объекта, нужно следить за положением указателя мыши. Сделать это несложно, так в системе VB предусмотрено специальное событие DragOver (Перетаскивание). Оно возникает для объекта, над которым находится указатель.
Откройте окно кода. Выберите в списке слева кнопку Command1, а в списке справа – событие DragOver (Перетаскивание). В процедуру Command1_DragOver передается несколько параметров.
Здесь нужно изменить положение кнопки так, чтобы указатель мыши всегда находился над одной и той же точкой объекта: как в начале перетаскивания, так и в ходе перетаскивания. Это происходит с помощью таких операторов:
Command1.Left=Command1.Left+X-cx
Command1.Top=Command1.Top+Y-cy
Еще нужно создать обработчик перетаскивания для формы. Операторы процедуры Form_ DragOver должны быть такими:
Command1.Left=X-cx
Command1.Top=Y-cy
Конец перетаскивания
При отпускании кнопки мыши мы должны в последний раз изменить рисунок на кнопке. При обычном щелчке в момент отпускания кнопки мыши возникает событие MouseUp (Отпускание кнопки), но у нас идёт перетаскивание. Поэтому у нас возникает особое событие DragDrop (Бросание). Оно тоже относится к перетаскиваемой кнопке. Создайте обработчик события – процедуру Command1_DragDrop – и добавьте в нее один оператор:
Command1.Picture = LoadPicture(“C:\TEMP\pear.bmp”)
Запустите программу клавишей F5. убедитесь, что она работает, как было задумано. При перетаскивании кнопки на ней изображается яблоко, а при отпускании – груша.
Для самостоятельной работы
Создать вместо командной кнопки изображение, которое при перетаскивании изменяет свой рисунок.
Лабораторная работа № 9
«ПРОГРАММНОЕ УРАВЛЕНИЕ ОБЪЕКТАМИ»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 Label, TextBox, UpDown, научиться пользоваться элементами управления и их свойствами
Задачи: Создать по пунктам лабораторной работы текстовое поле, которое меняет размер надписи.
Ход работы:
Мы знаем, что программист может подготовить сообщение, адресованное пользователю программы с помощью объекта Надпись. Также знаем, как выбрать шрифт для надписи, его форму и размер. Вы, обратили внимание на то, что пользователь программы может надписи только читать, а изменить их он не в состоянии.
Рассмотрим, как с помощью числового поля и присоединенного к нему счётчика пользователь сможет управлять шрифтом, которым сделана надпись.
Подготовка к работе
Запустим систему VB и создадим новый проект. Сохраним его в папке Счётчик. В системе VB счётчик – это не основной компонент, а дополнительный. Дополнительные компоненты надо сначала подключить к системе. Для подключения нового компонента щелкните на панели компонентов правой кнопкой мыши. В открывающемся контекстном меню выберите пункт Components (Компоненты) – откроется одноименное диалоговое окно. Установите в списке флажок возле пункта Microsoft Windows Common Controls – 2 (Стандартные элементы управления Windows - 2) и щёлкните на кнопке ОК. В нижней части панели компонентов появятся дополнительные кнопки.
Содержание формы
Нам нужны три элемента управления: текстовое поле, счётчик и надпись. Текстовое поле будем использовать для ввода чисел, то есть как числовое. К нему присоединим счётчик. Число, введенное в поле, будет влиять на внешний вид надписи – на размер шрифта.
Размещение и настройка надписи
Начнем с создания надписи. Выберите компонент Label (Надпись) на панели компонентов. Поместите надпись в нижнюю часть формы.
Теперь надпись надо настроить. Начнём с текста – он задаётся свойством Caption (Заголовок). Длинный текст нам не нужен. За изменением размера шрифта лучше всего следить на примере одной буквы. Введем в это поле заглавную букву Б. Результат не очень впечатляет, но это потому, что настройка ещё не закончена.
Зададим начальные параметры шрифта. Щелкните на свойстве Font (Шрифт), а затем на кнопке настройки шрифта. Откроется диалоговое окно Выбор шрифта. В списке Шрифт выберите вариант Times New Roman. Задайте также размер шрифта равным 144 пункта. Щелкните на кнопке ОК. Скорее всего, буква стала такой большой, что вылезла за пределы окна формы. Теперь можно перетаскиванием переместить надпись в другое место формы, а также изменить размеры самой формы при помощи маркеров и придать будущему окну программы аккуратный вид. В верхней части формы оставьте немного место для размещения поля со счётчиком.
После того как всё сделано, задайте для свойства Autosize (Автоподбор размера) значение True (Да). Затем снова откройте диалоговое окно настройки параметров шрифта равным 24 пунктам. Пусть в момент запуска программы он будет именно таким.
Наша следующая задача – выровнять положение надписи по центру формы. Дайте команду Format - Center in Form - Horizontally (Формат - Разместить по центру формы - По горизонтали). Надпись выровняется по центру формы. Кроме этого выберите для свойства Alignment (Выравнивание) значение 2 – Center (По центру). Благодаря этому надпись будет всегда оставаться в центре, даже после изменения размера шрифта.
Создание текстового поля
Создадим текстовое поле. На панели компонентов выберите компонент TextBox (Текстовое поле) и нарисуйте этот объект в верхней части формы. Размер поля выберите по своему усмотрению. Для поля нам нужна только одна настройка – начальное значение. Задайте для свойства Text (Текст) значение 24.
Добавление счётчика
Компонент, который позволит поместить на форму счётчик, ищите в нижней части панели компонентов. Он появился после того, как мы добавили на панель дополнительные компоненты. Называется этот компонент UpDown (Счётчик). Выберите его и нарисуйте счётчик в правой части текстового поля или вплотную к нему. Именно так принято располагать этот элемент управления. Измените высоту счётчика, чтобы она совпала с высотой текстового поля, а кнопки со стрелками были легко различимы.
Настройка счётчика
Объект «счётчик» имеет два режима работы: автономный и присоединенный. Счётчик всегда связан с другим объектом, например с полем ввода. Значение счётчика и число, содержащееся в поле, должны быть согласованы. В присоединенном режиме за этим следит сам объект (поле вводе). В автономном режиме за этим должен следить программист. Мы применим присоединенный режим.
Выделите счётчик щелчком левой кнопки мыши – на панели свойств откроются свойства этого объекта. Задайте для свойства AutoBuddy (Автоприсоединение) значение True (Да). Свойство BuddyControl (Присоединенный элемент) тут же получит значение Text1. Это название объекта, описывающее текстовое поле. Щёлкните на свойстве BuddyProperty (Присоединенное свойство). Выберите в раскрывающемся списке нужное нам свойство объекта Text1 – Text (Текст). Преобразование введённой строки в число счётчик берёт на себя.
Ещё нам надо задать для счётчика минимальное, максимальное и текущее значения. Для свойства Max (Максимальное значение) задайте значение 144, для свойства Min (Минимальное значение) – число 1. Текущее значение счётчика хранится в свойстве Value (Значение). Запишите сюда число 24.
Программируем работу текстового поля
Программировать работу счётчика не нужно – его базовых функций вполне хватает, а текстовым полем предстоит заняться.
Чтобы открыть окно кода, дважды щелкните на текстом поле, но не на счётчике. Система VB создаст процедуру Text1_Change. Она обрабатывает событие Change, наступающее в момент изменения текста в поле ввода.
В этой процедуре мы и запрограммируем все нужные действия.
Давайте сделаем так, чтобы в поле можно было вводить только цифры. Для этого применим функцию Val. Она преобразует введенный текст в число. Если текст набран не цифрами, функция Val вернет значение 0, и это предупредит программу об ошибке.
Присвоим значение, возвращенное функцией, вспомогательной переменной i:
i = Val(Text1.Text)
Переменная i по нашему замыслу должна содержать размер шрифта. Чтобы ограничить введенное число, запишем два условных оператора:
If i
If i 144 Then i = 144
Эти операторы будут действовать, только если значение переменной i оказалось за пределами разрешенного диапазона. В этом случае они заменят его ближайшим допустимым числом.
После этого мы должны присвоить свойству Text (Текст) текстового поля исправленное значение. Корректно преобразовать число в текст можно при помощи функции Str$. Она готовит число для вывода в текстовую строку и поэтому добавляет перед ним пробел, чтобы оно не сливалось с другими словами предложения. Удалить ведущие пробелы в строке позволяет функция LTrim$. Поэтому запишем нужный оператор так:
Text1.Text = LTrim$(Str$(i))
Осталось последнее: задать размер шрифта для надписи. Параметры шрифта хранятся в свойстве Font(Шрифт), которое является составным. Размер шрифта определяет свойство Size. Нужный оператор надо записать так:
Label1.Font.Size = i
Всё программа готова! Запустите программу, нажав клавишу F5.
Для самостоятельной работы
Создать 2 надписи, которые при запуске формы одновременно одна увеличивается, а другая уменьшается. Использовать элемент управления Таймер.
«ТАБЛИЦА УМНОЖЕНИЯ»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 Label, Slider,
Frame, Label, CheckBox, научиться пользоваться элементами управления и их свойствами
Задачи: Создать по пунктам лабораторной работы 2 движка, по которым можно перемножать два числа и возводить их в квадрат.
Ход работы:
Движок – это новый для нас элемент управления. Он состоит из шкалы и движущегося по ней бегунка. Бегунок передвигают методом перетаскивания или при помощи клавиш управления курсором. Для двух сомножителей нам потребуется два движка. Первым движком выбирается первый сомножитель, а вторым – второй сомножитель. При этом значение, установленное движком, можно увидеть в поле, которое сделано с помощью объекта Надпись.
Значение произведения тоже представлено в виде надписей, но его мы ещё особо выделим рамкой. Для перехода от таблицы умножения к таблице квадратов и обратно применим специальный флажок. Когда он включен, второй движок становится не нужным, ведь квадрат числа – это произведение двух одинаковых чисел, а их можно задать и одним движком.
Общий вид окна должен получиться примерно такой, как показано на рисунке 1.

Рисунок 1 - пример формы с движками
Готовимся к работе
Запустим систему VB и создадим новый проект. Сохраним его в папке Умножение. Движки – это дополнительные компоненты. Подключим их: щелкните на панели компонентов правой кнопкой мыши. Откроется контекстное меню. Выберите в нем пункт Components (Компоненты). Откроется одноименное диалоговое окно. Установите в списке флажок возле пункта Microsoft Windows Common Controls 6.0 (Стандартные элементы управления Windows). Щелкните на кнопке ОК. В нижней части панели компонентов появятся дополнительные кнопки.
Размещаем движки
Теперь на панели компонентов появилась кнопка Slider (Движок). Щелкните на ней, а затем нарисуйте движок на форме методом протягивания. Подобрать размер области движка можно с помощью маркеров изменения размеров. Затем поместить на форму второй движок прямо под первым.
Настраиваем движки
Оба движка должны работать совершенно одинаково, так что их свойствам можно задать одинаковые значения. С помощью панели свойств изменим следующие свойства движков.
Min (Минимум). Минимальное значение движка. Оно достигается, когда бегунок находится на левом краю полосы. Зададим здесь значение 2.
Max (Максимум). Максимальное значение движка – бегунок на правом краю полосы. Зададим для этого свойства значение 99.
Value (Значение). Это свойство задаёт текущее положение бегунка. При его движении это свойство изменяется автоматически. С помощью этого свойства удобно задать начальное положение бегунка. Пусть сначала бегунок находится в крайнем левом положении. Укажем для свойства значение 2.
SmallChange (Малое изменение). Бегунок не обязательно перетаскивать с помощью мыши. Его можно двигать и курсорными клавишами: ВЛЕВО и ВПРАВО, ВВЕРХ и ВНИЗ. При этом значение, заданное движком, изменяется на величину, заданную этим свойством. Здесь надо задать минимальное значение 1.
LangeChange (Большое изменение). Бегунок также можно двигать клавишами PAGEUP и PAGEDOWN. Тот же эффект даёт щелчок левой кнопкой мыши на полосе движка рядом с бегунком. Значение движка при этом изменяется на величину, заданную этим свойством. Давайте зададим здесь значение 7.
TickFrequency (Частота засечек). Это свойство указывает, как плотно будут располагаться засечки на полосе движка. Засечки помогают следить за положением бегунка. Давайте укажем здесь число 7, такое же, как значение свойства LargeChange (Большое изменение). В этом случае по щелчку на полосе бегунок будет перепрыгивать от одной засечки к следующей.
Для второго движка все настройки задайте точно так же.
Добавляем рамку
Заключим произведение в рамку. Для добавления рамки служит компонент Frame (Рамка). Выберите его на панели компонентов и нарисуйте рамку на форме методом протягивания.
Заголовок рамки, принятый по умолчанию, нам не подходит. Измените ее свойство Caption (Заголовок). Пусть над рамкой будет написано Произведение. Заголовок рамки находится возле ее левого верхнего угла. Изменить его положение нельзя.
Добавляем надпись
Надписи, как мы знаем, создаются при помощи компонента Label (Надпись). Нам потребуется три надписи: две для сомножителей и одна для произведения. Выберите компонент Label (Надпись) и нарисуйте надпись на форме методом протягивания. Первую надпись надо разместить справа от верхнего движка.
Остальные надписи добавляются на форму точно так же. Вторую надпись поместите рядом со вторым движком, а третью расположите внутри заготовленной рамки. Чтобы числа выглядели красиво, выровняйте правые границы надписей по одной вертикальной линии.
Настраиваем надписи
Числа, которые должны отображаться в надписях, могут быть однозначными, двузначными, трёхзначными и четырёхзначными. Хотелось бы, чтобы отведенное им место не зависело от длины числа. Для этого надо, чтобы значение свойства AutoSize (Автоподбор) для всех трёх надписей было равно False (Нет). Именно это значение задаётся по умолчанию, так что менять его не надо. Уточните с помощью маркеров размеры каждой надписи. Ещё нам надо изменить их текст. Так как наши движки установлены в крайнее левое положение, начальные значения множителей равны 2, а начальное значение произведения равно, соответственно, 4. Введем нужные значения в свойство Caption (Заголовок) каждой из надписей.
Теперь выравниваем наши надписи. Для этого изменяем значение свойства Alignment (Выравнивание) для объектов-надписей. Задайте для всех трёх надписей значение 1 – Right Justify (Выравнивание по правому краю).
Добавляем и настраиваем флажок
Выберите компонент CheckBox (Флажок) на панели компонентов и нарисуйте флажок под движками. Измените свойство Caption (Заголовок) – введите подпись Квадрат. Можно также изменить значение свойства Alignment (Выравнивание). Если выбрать значение 1 – Right Justify (Выравнивание по правому краю), то метка флажка окажется не слева, а справа от подписи. Теперь форма готова и можно приступить к программированию.
Программируем работу движков
Щелкните правой кнопкой мыши на верхнем движке. Откроется контекстное меню. Выберите в нем пункт View Code (Показать код) – откроется окно кода.
Первый объект – движок называется Slider1. Выберите название этого объекта в окне кода в раскрывающемся списке слева. В списке справа выберите событие Change (Изменение).Итак, надо поменять две надписи, а значит, добавить 2 оператора:
Label1.Caption = Str$(Slider1.Value)
Label3.Caption = Str$(Slider1.Value * Slider2.Value)
Для обработки изменения второго движка нужно создать аналогичную процедуру – обработчик. Выберите в окне кода в раскрывающемся списке слева Slider2. В списке справа выберите событие Change (Изменение).
Вот как выглядят нужные операторы:
Label2.Caption = Str$(Slider2.Value)
Label3.Caption = Str$(Slider1.Value * Slider2.Value)
Программируем влияние флажка
Если флажок установлен, бегунки должны всегда иметь одинаковые положения. При этом какой бы бегунок не двигали, второй должен двигаться точно также. Для этого необходимо добавить процедуру обработки щелчка на флажке, а также изменить процедуры обработки движков с учетом влияния флажка.
Выберите в окне кода в раскрывающемся списке слева объект Check1 (флажок). Система VB создаст процедуру обработки щелчка. Можем привести движки к одинаковому виду, просто сделав значение второго движка таким же, как у первого. Для этого нужен оператор:
Slider2.Value = Slider1.Value
Эта процедура готова. Теперь надо внести изменения в обработчики события Change (Изменение) для движков.
Выяснить установлен флажок или сброшен, можно с помощью свойства Value (Значение). Если флажок сброшен это свойство содержит значение 0, а если установлен – 1. Для этого используется условный оператор:
If Check1.Value = 1 Then
Если флажок установлен, приводим второй движок к значению первого
Slider2.Value = Slider1.Value
Такие же операторы надо вставить и во вторую процедуру обработки. Единственное отличие состоит в том, что приводим первый движок в соответствие со вторым.
Всё программа готова! Запустите программу, нажав клавишу F5.
Для самостоятельной работы
Создать 4 формы, на которых будут обрабатывать математические функции: сумма, разность, произведение, деление с помощью движков. Для двух операций таких как сумма и произведение применить более 2-х движков.
«ИЗУЧАЕМ ПЕРЕКЛЮЧАТЕЛИ»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 OptionButton,
Frame, CommandButton, CheckBox, ComboBox, VScrollBar, TextBox, научиться пользоваться элементами управления и их свойствами
Задачи: Создать по пунктам лабораторной работы 5 переключателей, с помощью которых отображается тот или иной элемент управления.
Ход работы:
С помощью переключателей можно выбрать одну из нескольких настроек. Переключатели, в отличие от флажков, никогда не встречаются по одному – только группами. В группе всегда выбран ровно один переключатель. При включении нового переключателя, старый сбрасывается.
Подготовим программу, которая будет демонстрировать примеры различных элементов управления. Однако программа состоит из двух частей. Левую часть окна займет группа переключателей, с помощью которых будет выбираться демонстрация того или иного элемента управления. Всего в группе будет 5 переключателей, соответствующих пяти примерам элементов управления.
Рядом с переключателями поместим рамку. Пример будет показан внутри рамки. В качестве примеров нам нужны пять разных элементов управления: кнопка, флажок, раскрывающийся список, полоса прокрутки и текстовое поле. При работе программы должен быть виден только один элемент управления. Он выбирается переключателем.
Создаём переключатели
Запустим программу VB и создадим новый проект. Сохраним его в папке Демонстратор. Начнём с создания группы переключателей.
Переключатели, входящие в группу, должны работать совместно. Для этого они должны входить в массив элементов управления.
Создадим первый переключатель. На панели компонентов выберите компонент OptionButton (Переключатель) и нарисуйте объект Option1 в верхней части формы методом протягивания.
Пока объект Option1 остаётся выделенным, нажмите комбинацию клавиш CTRL + C, произойдёт копирование выбранного объекта. Теперь нажмите комбинацию клавиш CTRL + V – это команда вставки объекта из буфера обмена. Произойдёт попытка поместить на форму копию объекта Option1. Программа отреагирует предупреждением об ошибке и предложит либо объединить второй объект с первым (создать новый объект – массив элементов управления), либо изменить имя копируемого объекта.
Массив элементов управления – это как раз то, что нам нужно, ведь переключатели всегда существуют только группами. Щелкните на кнопке ДА, и на форме появиться второй переключатель. Расположите его под первым.
Опять нажмите клавиши CTRL + V. На этот раз дополнительного запроса не будет, так как массив элементов управления уже создан. Поместите новый переключатель еще ниже в тот же столбец.
Таким же способом вставьте ещё два переключателя. Важно, чтобы все переключатели располагались в столбце в том же порядке, в каком они были созданы: не переставляйте их местами.
Учимся аккуратности
Чтобы окно программы выглядело аккуратно, элементы управления в нем необходимо выравнивать и располагать через равные интервалы. Ручное выравнивание - это слишком грубое выравнивание – лучше научиться пользоваться специальными командами выравнивания.
Выделите все пять переключателей. Проще всего это сделать протягиванием мыши, нарисовав на форме охватывающую их рамку. Затем дайте команду Format -Align - Left (Формат - Выравнивание - По левому краю). Объекты будут расположены точно друг под другом.
Далее надо сделать равными интервалы между элементами управления. Это делают командой Format - Vertical Spacing - Make Equal (Формат - Промежутки по вертикали - Уровнять). После этого переключатели в окне формы будут выглядеть действительно аккуратно.
Следующая задача – подобрать для них подписи. По очереди выберите каждый переключатель и измените его свойство Caption (Заголовок). Каждая подпись – название демонстрируемого элемента управления.
Добавляем рамку
Рамка поможет нам привлечь внимание к демонстрации. На панели компонентов выберите компонент Frame (Рамка), нарисуйте рамку справа от переключателей и измените свойство Caption (Заголовок) – введите слово Пример.
Добавляем демонстрационные объекты
Демонстрируемые элементы управления будем помещать внутри рамки. Они лягут стопкой друг на друга. При работе программы всегда будет виден только один элемент управления – тот, который связан с включенным переключателем. Действовать будем так:
Выберите на панели компонентов кнопку CommandButton (Командная кнопка). Нарисуйте ее объект внутри рамки. Задайте для свойства Caption (Заголовок) значение Это кнопка.
Выберите на панели компонентов флажок CheckBox (Флажок). Нарисуйте его объект внутри рамки. Ничего, если он ляжет прямо на кнопку. Задайте для свойства Caption (Заголовок) значение Это флажок. При работе флажок пока отображаться не должен – для свойства Visible (Видимый) задайте значение False (Нет).
На панели компонентов выберите компонент ComboBox (Поле со списком). Нарисуйте и этот объект внутри рамки, посередине. Задайте для свойства Style (Стиль) значение 2 – Dropdown List (Раскрывающийся список). Щёлкните на свойстве List (Список) и введите три пункта списка: Это, Раскрывающийся и Список. Для создания нового пункта списка применяйте комбинацию клавиш CTRL + ENTER. Для свойства Visible (Видимый) так же задайте значение False (Нет).
Выберите компонент VScrollBar (Вертикальная полоса прокрутки). Нарисуйте вертикальную полосу прокрутки в центре демонстрационной рамки. Немного измените ее настройку. Для свойства Max (Максимум) задайте значение 10, а для свойства LargeChange (Большое изменение) – значение 2. Не забудьте также задать значение False (Нет) для свойства Visible (Видимый).
Выберите компонент TextBox (Текстовое поле). Создайте в центре рамки экземпляр этого компонента. Задайте для свойства Text (Текст) значение Это текстовое поле. Этот элемент управления надо также сделать невидимым, задав для свойства Visible (Видимый) значение False (Нет).
Программируем переключатели
Самое важное событие для переключателей – это включение (Click). Оно возникает при включении любого переключателя в группе, причём неважно, как это сделано: щелчком мыши или нажатием клавиш ENTER и ПРОБЕЛ. Процедура для обработки этого события вызывается также при нажатии курсорных клавиш.
Чтобы создать эту процедуру, дважды щелкните на любом из переключателей. У массива объектов процедура обработки всегда общая. Номер объекта в массиве передается в нее как параметр Index. В нашем случае параметр Index в процедуре Option1_Click показывает, какой переключатель был установлен. Отсчет идет с нулевого по четвертый переключатель.
Давайте запишем код и посмотрим, что у нас получится:
Command1.Visible = Index = 0
Все остальные операторы запишем точно так же:
Check1.Visible = Index = 1
Combo1.Visible = Index = 2
VScroll1.Visible = Index = 3
Text1.Visible = Index = 4
Запустите программу, нажав клавишу F5.
Для самостоятельной работы
В качестве самостоятельной работы напишите программу, показывающую картинки из пяти различных коллекций, например, посвященных городам мира.
На левой панели создайте пять переключателей: Азия, Африка, Европа, Северная Америка и Южная Америка. На средней панели поместите пять списков. Например, для Европы список может быть таким: Берлин, Лондон, Москва, Париж, Прага.
Подберите картинки с фотографиями различных городов и поместите их файлы в специально заготовленную папку, например С:\PHOTO.
«МЕНЯЕМ СОДЕРЖИМОЕ ПОЛЕЙ МЕСТАМИ»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 CommandButton, TextBox, научиться пользоваться элементами управления и их свойствами
Задачи: Создать по пунктам лабораторной работы 2 текстовых поля и 2 кнопки, с помощью которых меняются надписи и фоновый цвет поля.
Ход работы:
1. Готовимся к работе
Для начала откройте VB. Затем в открывшейся форме создаем свой проект, который будет состоять из двух текстовых полей и двух кнопок ПУСК1 и ПУСК2.
На левом текстовом поле (объект с именем Text1) – строка из букв черного цвета на белом фоне; на правом текстовом поле (объекте с именем Text2) – строка из букв белого цвета на черном фоне. Щелчок по кнопке ПУСК1 должен – перенести левую строку направо, а правую – налево. Цвет букв и цвет фона каждого поля меняться не должны. Чтобы при обмене содержимым текстовых полей менялись бы и их цвета (как букв, так и фона), вы должны кликнуть ни на кнопку ПУСК1, а на – ПУСК2.
Настроим свойства полей – цвет символов (ForeColor) и цвет фона (BackColor).
Интерфейс вроде готов.
2. Приступаем к программированию
Составим алгоритм и напишем программу для первого из двух событий – щелчка кнопки ПУСК1.
Определим переменную типа String, пусть это будет Строка. После щелчка командной кнопки этой переменной будет присвоено значение Text1, а Text1 присвоено Text2, а Text2 помещается в переменную Строка. В итоге должен получиться следующий код:
Private Sub ПУСК1_Click()
Dim Строка As String
Строка = Text1.Text
Text1.Text = Text2.Text
Text2.Text = Строка
End Sub
Теперь решим вторую задачу. Составим алгоритм и напишем программу для второго из двух событий – щелчка кнопки ПУСК2. Определим три переменные: одну типа String и две типа Long. Назовем их Строка, ЦветФона и ЦветБукв.
После клика по командной кнопке этим переменным будут присвоены значения трех свойств одного текстового поля с именем Text1: Text, BackColor, ForeColor. После чего будет происходить обмен значений этих свойств двух текстовых полей с помощью указанных выше переменных подобно тому, как это происходило при решении первой задачи (для кнопки ПУСК1).
В итоге должно получиться следующее:
Private Sub ПУСК2_Click()
Dim Строка As String, ЦветФона As Long, ЦветБукв As Long
Строка = Text1.Text
ЦветФона = Text1.BackColor
ЦветБукв = Text1.ForeColor
Text1.Text = Text2.Text
Text1.BackColor = Text2.BackColor
Text1.ForeColor = Text2.ForeColor
Text2.Text = Строка
Text2.BackColor = ЦветФона
Text2.ForeColor = ЦветБукв
End Sub
Все программа готова. Осталось только сохранить и откомпилировать программу.
Для самостоятельной работы
Напишите программу «Обмен значениями» подобное тому, которое было рассмотрено в данной лабораторной работе, но содержащих не два, а четыре текстовых поля (Левое верхнее, левое нижнее, правое верхнее, правое нижнее).
Как и в лабораторной работе щелчок кнопки ПУСК1 должен сделать надписи в текстовых полях «правильными» - соответствующие по смыслу тем местам, на которых они находятся. При этом цвет полей и букв в этих полях меняться не должны.
Щелчок кнопки ПУСК2 должен помимо смены надписей изменить и указанные цвета.
«ВВОД ФАМИЛИИ ИМЕНИ И ОТЧЕСТВА»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 TextBox, научиться пользоваться элементами управления и их свойствами
Задачи: Создать по пунктам лабораторной работы 3 текстовых, в которые с помощью InputBox заносится информация.
Ход работы:
1. Готовимся к работе
Откройте VB. Затем на форме разместим три поля и одну командную кнопку.
Пусть кнопка называется ПУСК. Переходим в окно кода кнопки и записываем код программы. Трем переменным (Фамилия, Имя, Отчество) присваиваем тип String.
Затем в эти переменные помещаем соответствующие сообщения, например «Введите, пожалуйста, Вашу фамилию» через функцию InputBox и т.д.
2. Приступаем к программированию
В итоге должен получиться следующий код:
Private Sub ПУСК_Click()
Dim Фамилия As String, Имя As String, Отчество As String
Фамилия = InputBox("Введите,пожалуйста, Вашу фамилию:", "Ввод фамилии")
Имя = InputBox("Введите,пожалуйста, Ваше имя:", "Ввод имени")
Отчество = InputBox("Введите,пожалуйста, Ваше отчество:", "Ввод отчество")
Text1.Text = Фамилия: Text2.Text = Имя: Text3.Text = Отчество
End Sub
После щелчка по кнопке ПУСК должна появиться форма для ввода фамилии, после того как ввели фамилию и щелкнули по кнопке ОК, появляется форма для ввода имени, затем отчества. После того как введены фамилия, имя и отчество они отображаются в форме, где расположены три поля и кнопка.
Осталось сохранить проект и откомпилировать. И все!
Для самостоятельной работы
Создать вид анкеты, куда данные будут вводиться с помощью InputBox.
«СТРОКА И СТОЛБИК»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 CommandButton, TextBox, научиться пользоваться элементами управления и их свойствами
Задачи: Создать по пунктам лабораторной работы 4 текстовых поля, в которые заносится информация и при щелчке на кнопке значения ячеек помещаются в поле метки в строку и в столбец.
Ход работы:
1. Готовимся к работе
Для начала запустим VB. После этого на форме расположим в столбик друг за другом четыре текстовых поля, поле метки (Label) и 2 командных кнопки.
Интерфейс готов. Рассмотрим 2 случая, как должна выглядеть программа: 1 – когда значения ячеек будут помещаться в поле метки в строчку. В этом случае форма будет выглядеть следующим образом (рисунок 1):

Рисунок 1 – Запись в поле метки (справа) конкатенации строк из текстовых полей (слева) без переноса слов на новую строчку
А во втором случае – когда значения в поле метки помещаются с переносом слов. Выглядит это так (рисунок 2):

Рисунок 2 – Запись в поле метки конкатенации строк из текстовых полей с переносом новых слов на новую строку
2. Приступаем к программированию
Разместили на форме 2 кнопки: Первая кнопка для первого случая, когда в поле метка значения помещаются в одну строчку. А вторая кнопка для второго случая – когда значения помещаются в столбик.
Переходим к окну кода первой кнопки. Двойным щелчком по первой кнопке открываем окно кода и записываем код программы, который будет выглядеть следующим образом:
Private Sub Command1_Click()
Label1.Caption=Text1.Text+ « «+Text2.Text+« «+Text3.Text+« «+Text4.Text
End Sub
Далее приступаем к написанию кода для второй кнопки. Аналогичным образом открываем окно кода для второй кнопки и записываем следующий код:
Private Sub Command2_Click()
Label1.Caption=Text1.Text+Chr(13)+Chr(10)+Text2.Text+Chr(13)+Chr(10)+Text3.Text+ Chr(13)+Chr(10)+Text4.Text
End Sub
Вот и все. Осталось сохранить проект и откомпилировать его.
Для самостоятельной работы
Напишите программу, которая решает задачу. В поле вводится одна строка, содержащая сведения о фамилии, имени и отчестве. В этой строке они разделены пробелами, например: «Иванов Игорь Васильевич». Программа должна поместить в три текстовых поля отдельно фамилию, отдельно имя и отдельно отчество.
«ЗАГАДАЙ ЧИСЛО»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 Label, Text
научиться пользоваться элементами управления и их свойствами
Задачи: Создать электронную игру по пунктам лабораторной работы, которая играет с пользователем в следующую игру: компьютер «задумывает» целое число (допустим, одну из пяти цифр – от 1 до 5); пользователь пытается отгадать это число. Если ему это удается, появляется сообщение об его «успехе».
Ход работы:
1. Готовимся к работе
Откройте VB. На форме размещаем три надписи (Label), две кнопки и одно текстовое поле. В свойстве (Caption) первой надписи (Label1) записываем следующую фразу: «Нажмите кнопку СТАРТ1, чтобы компьютер задумал число от 1 до 5». Чтобы выравнить ее по центру – в свойствах найдите Alignment и из раскрывающегося списка выберите 2- center; в свойстве второй надписи (Label2) записываем: «Введите любое число от 1 до 5»; и третью надпись оформляем также как и первую, но в Caption записываем фразу: «Нажмите кнопку СТАРТ2. Если Вы угадали, компьютер поздравит Вас!»
Переходим к оформлению текстового поля (Text1). Выделяем его и в свойствах Name задаем имя полю Number.
Теперь переходим к кнопкам. Выделяем первую кнопку имя кнопки (Name) оставим без изменения, а в Caption запишем СТАРТ1. С второй кнопкой поступим тем же образом, только Caption будет уже СТАРТ2. Окно формы будет выглядеть, примерно, так (рисунок 1):

Рисунок 1 – Форма для игры
2. Приступаем к программированию
Напишем код для первой кнопки для этого выделим кнопку с надписью СТАРТ1, перейдем в окно для написания кода программы и запишем следующее:
Public Number1 As Integer
Private Sub Command1_Click()
Randomize Timer
Number1 = 1 + Int(Rnd * 5)
End Sub
Займемся второй кнопкой СТАРТ2. В окне кода напишем код:
Private Sub Command2_Click()
Dim Number2 As Integer
Number2 = Val(Number.Text)
If Number2 = Number1 Then
MsgBox "Поздравляю Вас! Вы угадали!", 64, "Результат"
End If
End Sub
3. Проверка работы программы
Теперь сохраните свой проект и откомпилируем его. Работает программа так. Щелчок первой командной кнопки побудит компьютер создать задуманное число. Щелчок второй командной кнопки (после ввода пользователем своего числа) запустить сравнение этих чисел. Сравнение будет производиться с помощью оператора If … Then … . Если числа совпадут, сработает функция MsgBox, которая выдаст сообщение об успехе пользователя на панели сообщения.
«КОМПЬЮТЕРНАЯ ГРАФИКА»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 Shape,
научиться пользоваться элементами управления и их свойствами
Задачи: Создать светофор по пунктам лабораторной работы, который при наведении мыши на лампочку зажигает определенный цвет
Ход работы:
Начнем с конца
В этой программе нарисуем светофор, способный реагировать на наведение указателя мыши. Когда указатель наведен на лампочку, она меняет свой цвет.
Для этой программы потребуется только один компонент на форме простые геометрические фигуры: круги, прямоугольники, овалы.
Форма и компоненты
Запустите систему VB и создайте новый проект. Сохраните его в папке Светофор. На форме надо разместить объекты – лампочки светофора. Выберите на панели компонентов компонент Shape (Фигура) и нарисуйте объект на форме методом протягивания. Первую фигуру поместите в левый верхний угол формы. Новая фигура изображается в виде черной рамки. Добавьте на форму еще две фигуры. Постарайтесь чтобы у фигуры был одинаковый размер.
Настройка фигур
Фигуры не похожи на лампочки светофора. Лампочки должны быть круглыми, а не прямоугольными. Начнем с самой верхней фигуры. Щелкните на ней, чтобы она стала выделенной.
Сначала превратите прямоугольник, ограничивающий фигуру, в квадрат. Для этого измените значение свойств Width (Ширина) и Height (Высота). Дайте и тому и другому свойству значение 900.
Теперь задайте форму фигуры. Она задается свойством Shape (Форма). Чтобы лампочка стала круглой, выберите для этого свойства значение 3 – Circle (Круг).
Фигура состоит из контура и внутренней области, которые можно раскрасить в разные цвета. Цвет контура определяет свойство BorderColor (Цвет рамки). Щелкните на этой надписи, а затем в раскрывающей кнопке, появившейся справа, выберите вкладку Palette (Палитра) и на ней красный цвет.
Цвет внутренней части фигуры задается свойством FillCilor (Цвет заполнения). Выберите для него тот же цвет, что и для границы. Но на самой форме ничего не изменится. Потому сто есть еще одно свойство FillStyle (Способ заполнения). Оно определяет способ заполнения фигуры. Его значение, заданное по умолчанию: 1- Transparent (Прозрачный), и поэтому фигура не закрашивается. Выберите для этого свойства значение 0 – Solid (Сплошной). Фигура при этом закрашивается – лампочка «зажигается».
Точно также настройте остальные фигуры: Shape2 и Shape3. Они должны различаться только цветом. Для второй лампочки выберите желтый цвет, а для третьей – зеленый.
Программируем лампочки
Чтобы открыть окно кода, дважды щелкните на любой из лампочек. Окно кода откроется, но в нем ничего нет. Система VB не выберет объект автоматически и не создаст для него процедуру – обработчик. Тем более, что в раскрывающемся списке слева нет фигур. Система не считает фигуры активными элементами. Ваша программа должна сама следить за тем, как указатель мыши перемещается по форме, и в нужное время выдавать необходимый сигнал – событие. Если нельзя связать перемещение мыши с объектом, то свяжем его с другим объектом – контейнером, в котором располагается фигура. Это будет форма.
Выберите ее в левом раскрывающемся списке окна кода. В списке справа выберите событие MouseMove (Движение мыши). Оно возникает, когда указатель мыши наведен на форму.
Система VB автоматически создаст обработчик этого события – процедуру Form_MouseMove. Эта процедура отличается от других. В нее передаются параметры Button – указывает, какие кнопки мыши нажаты; Shift – указывает, не была ли при перемещении нажата клавиша клавиатуры Shift, Ctrl или Alt; X – горизонтальная координата указателя мыши; Y – вертикальная координата указателя.
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Осталось решить, какие параметры передадим в функцию.
надо указать, для какой фигуры производится проверка;
нужно передать в функцию координату указателя мыши.
Значение, полученное от функции, можно сразу присвоить свойству фигуры, отвечающему за способ заполнения. Включить и выключить лампочку можно так:
Shape1.FillStyle = OnShape(Shape1, X, Y)
Похожие операторы нужно записать и для двух оставшихся фигур:
Shape2.FillStyle = OnShape(Shape2, X, Y)
Shape3.FillStyle = OnShape(Shape3, X, Y)
Эти операторы и составят содержимое процедуры Form_MouseMove.
Попадание на фигуру
Нужно не забыть написать функцию OnShape. Автоматически система VB умеет создавать только обработчики событий, поэтому для создания этой процедуры придется дать системе прямую команду ToolsAdd procedure (СервисДобавить процедуру). Откроется одноименное диалоговое окно. Задайте в поле Name (Имя) – имя процедуры – OnShape. На панели Type (Тип) установите переключатель Function (Функция). На панели Scope (Доступ) установите переключатель Private (Закрытая). Щелкните на кнопке OK.
В окне кода появятся такие операторы:
Private Function OnShape()
End Function
В скобки после имени функции необходимо добавить формальные параметры. Они показывают, какие данные передаем в функцию. При описании параметров надо указать их имя и тип. Полученная строка должна выглядеть так:
Private Function OnShape(sh As Shape, X As Single, Y As Single)
Теперь нужно вычислить наведен ли указатель мыши на фигуру. Сначала вычислим радиус фигуры. Он составляет половину ее высоты или ширины.
r = sh.Width / 2
Теперь найдем координаты центра фигуры и присвоим их вспомогательным переменным. Чтобы найти координаты центра фигуры, прибавим к значениям левой и верхней границ величину радиуса:
cx = sh.Left + r
cy = sh.Top + r
Далее вычислим квадрат расстояния от центра и тоже присвоим его значение вспомогательной переменной:
d2 = (X - cx) * (X - cx) + (Y - cy) * (Y - cy)
Если указатель мыши не наведен на лампочку, надо написать оператор:
OnShape = vbFSTransparent
Такое значение цвета функция вернет, когда указатель мыши находится за пределами фигуры. Если же он находится внутри фигуры, то вычисленное значение квадрата расстояния меньше квадрата радиуса фигуры, и фигуру надо сделать прозрачной:
If d2
Приведем окно в порядок
Обратим внимание на окно программы. Надо:
выбрать размер окна;
изменить заголовок окна;
проверить фоновый цвет окна;
запретить изменение размеров окна при работе программы.
Настраиваем размер окна. Размер окна определяется свойствами Width (Ширина) и Height (Высота). Щелкните напротив этих свойств в правом столбце таблицы и задайте значения 4200 и 1800.
Меняем заголовок окна. Заголовок окна – это значение свойства Caption (Заголовок). Щелкните на значении этого свойства и введите новый заголовок: Светофор.
Удаляем лишние кнопки. Чтобы убрать лишние кнопки, изменим свойства MinButton (Кнопка сворачивания) и MaxButton (Кнопка разворачивания), задав для них значение False (Нет). Больше в строке заголовка программы нет лишних кнопок.
Меняем фоновый цвет окна. Фоновый цвет окна задаётся с помощью свойства BackColor (Фоновый цвет). Здесь сейчас задан стандартный серый цвет, который можно оставить без изменений.
Запрещаем изменение размеров окна. Можно или нет изменить размеры окна программы, зависит от типа его рамки. Этот тип задаётся свойством BorderStyle (Стиль рамки). Выберем в раскрывающемся списке значение: 1 – FixedSingle (Тонкая фиксированная). Это значение определяет тонкую рамку, не допускающую изменения размеров.
Выравнивание элементов
Выделите все три фигуры. Щёлкните на каждой из них по очереди, удерживая нажатой клавишу SHIFT. После того как все фигуры выбраны, дайте следующие команды:
Format - Align - Lefts (Формат - Выровнять - По левому краю). Фигуры выровняются по левому краю.
Format - Make Same Size - Both (Формат - Уравнять размер - По обоим направлениям). Все фигуры станут одинаковыми.
Format - Vertical Spacing - Make Equal (Формат - Вертикальные промежутки - Выровнять). Фигуры равномерно распределятся по вертикали.
Format - Center in form - Vertically (Формат - По центру формы - По вертикали) и Format - Center in form - Horizontally (Формат - По центру формы - По горизонтали). Фигуры расположатся симметрично относительно сторон формы.
Для самостоятельной работы
Создать радугу.
«СПИСОК ФЛАЖКОВ»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 ListBox,
Checkbox, label, научиться пользоваться элементами управления и их свойствами
Задачи: Создать головоломку Ллойда по пунктам лабораторной работы.
Ход работы:
1. Головоломка которую мы решаем
Большинство головоломок Ллойда оформлено в виде небольших рассказов. Нам придётся сохранить только суть задачи. Она вроде бы проста: из заданного набора чисел надо выбрать те, сумма которых составит 50. Числа, которые Ллойд избрал для своей головоломки, такие: 25, 27, 3, 12, 6, 15, 9, 30, 21, 19. Порядок записи здесь тот же, что и у автора, мы его просто сохранили.
Какие элементы управления нам понадобятся? Во-первых, используем список флажков. Еще понадобится обычный список, без флажков. В него мы поместим выбранные числа. Сумму этих чисел покажем в виде надписи.
Форма и компоненты
Запустите систему VB и создайте новый проект. Сохраните его под именем Головоломка. Нам нужны три элемента управления: список флажков, простой список и надпись. При работе программы активен только список флажков, остальные элементы управления служат только в качестве подсказки.
Создаём и настраиваем список флажков
Простой список и список флажков создаются при помощи одного и того же компонента. Начнём со списка флажков. Щёлкните на кнопке ListBox (Список) на панели компонентов. Нарисуйте список в левой части формы методом протягивания. Область списка должна получиться высокой и узкой.
Чтобы превратить обычный список в список флажков, найдите свойство Style (Стиль). Выберите для него значение: 1 – Checkbox (С флажками).
Теперь нам надо задать состав списка. Щелкните на свойстве List (Список), а затем на раскрывающейся кнопке. В раскрывающемся списке курсор встанет на пустую строку. Введите число 25. если сейчас нажать клавишу Enter, то список закроется. Поэтому вместо этого нажмите комбинацию CTRL+Enter и введите очередной элемент списка – нужные числа приведены в начале. После того как все 10 чисел введены, нажмите клавишу Enter.
Теперь вернемся к оформлению списка флажков. С помощью маркеров изменения размеров подберите его размер по вертикали так, чтобы все числа поместились в список (без полос прокрутки) и при этом в нем не оставалось бы свободного места. Точно также задайте размер списка по горизонтали.
Создаем дополнительные объекты
Создадим второй список. Снова щелкните на кнопке ListBox (Список). Нарисуйте второй список справа от первого. Пусть его ширина будет примерно такой же,, а высота – поменьше. Никакой настройки для этого списка не требуется – первоначально второй список пуст. Заполняться он будет при работе программы.
Щелкните на кнопке label (Надпись) на панели компонентов. Нарисуйте надпись ниже второго списка. На панели свойств разыщите свойство Caption (Заголовок). Введите в него текст: «Сумма 0». Это начальное значение суммы выбранных чисел (пока ничего не выбрано). Содержание надписи также будет меняться в ходе работы программы.
В пределах надписи должно оставаться свободное место. В зависимости от того, какие числа выбраны, сумма может быть двухзначной и даже трехзначной. Нужно чтобы результат всегда помещался в отведенное место. Задайте для свойства Aligment (Выравнивание) значение:2 - Center (По центру).
После того как в форму включены все нужные объекты, можно уточнять ее размеры. Чтобы их нельзя было изменить во время работы программы, можно задать для свойства BirderStyle (Тип границы) значение 1- Fixed Single (Тонкая фиксированная). Окно программы готово и можно приступать к программированию.
Установка и сброс флажков
В окне программы только один элемент управления способен к диалогу – это список флажков. Программа должна что-то делать только в том случае, если один из флажков устанавливается или сбрасывается. В этом случае возникает событие ItemCheck (Пометка пункта). Нужно описать реакцию на него. Щелкните на списке флажков правой кнопкой мыши. Выберите в открывшемся контекстном меню пункт ViewCode (Показать код).
В окне кода выберите в раскрывающемся списке справа событие ItemCheck (Пометка пункта). Система VB создаст заготовку процедуры List1_ ItemCheck для обработки этого события. Номер пункта, для которого был установлен или сброшен флажок, передается через параметр Item.
Также нужно выяснить, установлен был флажок ли сброшен. Информация о состоянии флажка храниться в свойстве Selected (Выбран). Это логический массив, в котором столько элементов, сколько пунктов в списке. Оператор проверки состояния флажка должен выглядеть так:
If List1.Selected(Item) then
Процедура обработки события вызывается уже после того, как состояние флажка изменилось. Поэтому условие истинно, если флажок был только установлен. В этом случае должны добавить во второй список новый пункт. Это делается при помощи метода AddItem. Его параметр – содержимое добавляемого пункта. Пункты списка хранятся в свойстве List. Нужный оператор выглядит так:
List2.AddItem List1.List(Item)
Еще придется перебрать все элементы второго списка и сравнить их с текущим элементов первого списка. Для это понадобится цикл, выполняющий перебор. Число элементов в списке задается свойством ListCount. Нужные операторы будут выглядеть так:
Else
For i=0 To List2.ListCount – 1
If List2.List(i) = List1.List(Item) Then
Из значение свойства ListCount мы вычли единицу. Это сделано потому, что нумерация элементов массива начинается не с единицы, а с нуля. Если условие List2.List(i) = List1.List(Item) истинно, значит, нужный элемент найден. Его номер совпадает с текущим значением переменной i . В этом случае надо удалить этот элемент из списка. Это делается при помощи метода Removeltem:
List2. Removeltem i
End if
Next i
Теперь наша программа умеет правильно реагировать на установку или сброс флажка в списке. Осталось закрыть начатый условный оператор:
End If
Обновление суммы
Теперь надо заново посчитать сумму выбранных чисел. Хотя элементы списка выглядят как числа, они, на самом деле, являются текстовыми строками. Поэтому при суммировании нам придётся воспользоваться функцией Val.
Это тоже удобно сделать в цикле. Пусть сумма накапливается в переменной s. Её расчёт можно выполнить так:
s = 0
For i = 0 To List2.ListCount – 1
s = s + Val(List2.List(i))
Next i
Чтобы представить сумму в поле подписи, она должна быть текстовой строкой. Присоединим её к тексту подсказки с помощью операции слияния строк:
Label1.Caption = “Сумма: ” + Str$(s).
Проверка решения
Осталось проверить, решена ли головоломка. Так как значение суммы выбранных чисел у нас уже есть, надо сравнить его с заданным числом 50:
If s = 50 Then
Если головоломка не решена, делать ничего не надо и решение можно продолжать. Если же решение найдено, давайте отключим все элементы управления (изменив свойство Enebled). Кроме того, выведем в поле надписи сообщение “Победа”. Это можно сделать так:
Label1.Caption = “Победа: ” + Str(s)
List1.Enebled = False
List2.Enebled = False
End If
«ИСПОЛЬЗОВАНИЕ ОБЪЕКТА УПРАВЛЕНИЯ
УСОВЕРШЕНСТВОВАННОЕ ТЕКСТОВОЕ ПОЛЕ»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 CommonDialog1, RichTextBox1, Menu Editor, научиться пользоваться элементами управления и их свойствами
Задачи: Создать пункты меню, усовершенствованное поле по пунктам лабораторной работы, в котором будет открываться выбранный вами файл.
Ход работы:
Усовершенствованное текстовое поле – это объект предназначен для работы с текстовой информацией и очень напоминает объект Текстовое поле (TextBox), который неоднократно вами использовался. Он недаром называется усовершенствованным текстовым полем (RichTextBox1). С его помощью можно форматировать текст, редактировать его с помощью мыши и сохранять его в специальных файлах. (Эти файлы имеют расширение rtf).
Размещение объекта
Инструмент RichTextBox не является стандартным, поэтому прежде всего вы должны включить его в ваш набор инструментов Toolbox. Размещение объекта не составит труда. Разместите его методом протягивания. Поместив это текстовое поле на форме в нем будет находиться текст: RichTextBox1.
Разместите на форме элемент управления CommonDialog1.
Установление значений для некоторых свойств данного объекта
Если собираетесь работать с достаточно большим текстом, нужно поле сделать пошире – растянуть его мышью или установить большое значение (в твипсах) свойства Width (Ширина).
Чтобы текст не “уходил” за правый край окна, установите значение свойства RiqhtMarqin (Правый край) немного меньшим, чем значение свойства Width (твипсов на 500).
Чтобы в работающем приложении автоматически могли появиться полосы прокрутки, установите значение свойства ScrollBars равным Both (обе) – для установки как вертикальной, так и горизонтальной полос.
Чтобы усовершенствованное текстовое поле в дальнейшем сослужило вам хорошую службу – стало основой редактора текста, который вы хотите создать. Для этого вы должны позаботиться о том, чтобы в это поле можно было загрузить файл rtf, а также сохранить содержимое этого поля в виде файла rtf.
Создаем меню
Создайте меню, состоящее из 2- х опций – File и Text. Каждая из них будет содержать подменю с командами: Open, Save. SaveAs (для опции File), Font, Color, Edit (для опции Text) и Cope, Cut, Paste (для опции Edit) (рисунок 1).
При создании меню присвойте командам опции File следующие имена MenuOpen, MenuSave и MenuSaveAs. Щелкнув любую команду опции File на этапе проектирования получите заготовку для создания программного кода, который обрабатывает событие – использование этой команды в рабочем режиме.


Рисунок 1 - меню
Приступаем к программированию
Следующая процедура выглядит следующим образом:
Private Sub Open_Click()
CommonDialog1.ShowOpen
RichTextBox1.LoadFile CommonDialog1.FileName
End Sub
Private Sub Save_Click()
CommonDialog1.ShowSave
If CommonDialog1.FileName = " " Then SaveAs_Click Else
RichTextBox1.SaveFile RichTextBox1.FileName, rtfRTF
End Sub
Private Sub SaveAs_Click()
CommonDialog1.ShowSave
RichTextBox1.SaveFile RichTextBox1.FileName, rtfRTF
End Sub
В этих процедурах используются два метода, которые можно применить к объекту RichTextBox – это методы LoadFile и SaveAs.
Теперь рассмотрим методы как можно изменять шрифт (Font) и цвет (Color) выделенного в текстовом поле фрагмента. Эта процедура выглядит следующим образом:
Private Sub Font_Click()
CommonDialog1.ShowFont
RichTextBox1.SelFontName = CommonDialog1.FontName
RichTextBox1.SelFontSize = CommonDialog1.FontSize
RichTextBox1.SelBold = CommonDialog1.FontBold
RichTextBox1.SelItalic = CommonDialog1.FontItalic
End Sub
Private Sub Color_Click()
CommonDialog1.ShowColor
RichTextBox1.SelColor = CommonDialog1.Color
End Sub
Теперь разберемся с тем, как организовать работу с буфером обмена (Clipboard) – копировать (Copy), вырезать (Cut) и вставлять(Paste)выделенные фрагменты текста.
Буфер обмена – это тоже объект VB, но его нельзя найти в арсенале Toolbox, так как это объект Windows. Но к этому объекту можно применять некоторые методы VB. Используем только 2 из них – SetText и GetText.
Программный код трех процедур позволяющих работать с SetText и GetText, следующий:
Private Sub Copy_Click()
Clipboard.SetText RichTextBox1.SelText
End Sub
Private Sub Cut_Click()
Clipboard.SetText RichTextBox1.SelText
RichTextBox1.SelText = " "
End Sub
Private Sub Paste_Click()
RichTextBox1.SelText = Clipboard.GetText
End Sub
«СОЗДАНИЕ ТЕСТА»
Цель работы: Познакомиться с элементами управления Visual Basic 6.0 Тext, Label, Check1, научиться пользоваться элементами управления и их свойствами
Задачи: Создать по примеру лабораторной тестовый опрос.
Ход работы:
Размещение объектов
На форме разместите восемь элементов управления: 3 текстовых поля и задайте им имена Text1, Text2, Text3, надпись с именем Label1, три флажка с именами Check1, Check2, Check3, одну командную кнопку, на которой сделайте надпись «Следующий». Оформление смотрите на рисунке 1.

Рисунок 1 – размещение объектов на форме
2. Приступаем к программированию
Программный модуль
Private Sub Command1_Click()
Select Case k
Case 1
If Check1 = 1 And Check2 = 0 And Check3 = 0 Then s = s + 1
Check1 = 0
Check2 = 0
Check3 = 0
Label1 = "Стихотворение А.Н.Майкова"
Text1 = "Пейзаж"
Text2 = "Тройка"
Text3 = "Свидание и разлука"
k = k + 1
Case 2
If Check1 = 1 And Check2 = 0 And Check3 = 0 Then s = s + 1
Check1 = 0
Check2 = 0
Check3 = 0
Label1 = "В каком году умер И.В.Гете"
Text1 = "1749"
Text2 = "1832"
Text3 = "1830"
k = k + 1
Case 3
If Check1 = 0 And Check2 = 1 And Check3 = 0 Then s = s + 1
Check1 = 0
Check2 = 0
Check3 = 0
Label1 = "В каком году И.В.Гете поехал в Ваймар"
Text1 = "1776"
Text2 = "1770"
Text3 = "1775"
k = k + 1
Case 4
If Check1 = 1 And Check2 = 0 And Check3 = 0 Then s = s + 1
Check1 = 0
Check2 = 0
Check3 = 0
Label1 = "Где родилась Н.Ф.Щербина"
Text1 = "под Таганрогом"
Text2 = "под Москвой"
Text3 = "под Петербургом"
k = k + 1
Case 5
If Check1 = 1 And Check2 = 0 And Check3 = 0 Then s = s + 1
Check1 = 0
Check2 = 0
Check3 = 0
Label1 = "В каком году появился первый поэтический сборник Н.Ф.Щербина"
Text1 = "1850"
Text2 = "1853"
Text3 = "1851"
k = k + 1
Case 6
If Check1 = 1 And Check2 = 0 And Check3 = 0 Then s = s + 1
Check1 = 0
Check2 = 0
Check3 = 0
Label1 = "Где похоронен С.Я.Надсон"
Text1 = "На Кавказе"
Text2 = "В Москве"
Text3 = "В Петербурге"
k = k + 1
Case 7
If Check1 = 0 And Check2 = 0 And Check3 = 1 Then s = s + 1
Check1 = 0
Check2 = 0
Check3 = 0
Label1 = "Стихотворение Н.С. Яковлева"
Text1 = "Моей матери"
Text2 = "Из песен любви"
Text3 = "Приветствие духа"
k = k + 1
Case 8
If Check1 = 0 And Check2 = 1 And Check3 = 0 Then s = s + 1
Check1 = 0
Check2 = 0
Check3 = 0
Label1 = "Я.П. Полонский был студентом......"
Text1 = "юридического факультета"
Text2 = "педагогического факультета"
Text3 = "медицинского факультета"
k = k + 1
Case 9
If Check1 = 1 And Check2 = 0 And Check3 = 0 Then s = s + 1
Check1 = 0
Check2 = 0
Check3 = 0
Label1 = "С какого года Н.А.Некрасов стал редактором журнала Отечественные записки"
Text1 = "1868"
Text2 = "1843"
Text3 = "1848"
k = k + 1
Case 10
If Check1 = 1 And Check2 = 0 And Check3 = 0 Then s = s + 1
Check1 = 0
Check2 = 0
Check3 = 0
Label1 = "Годы жизни Н.А.Некрасова"
Text1 = "1821-1878"
Text2 = "1788-1862"
Text3 = "1843-1848"
k = k + 1
Case 11
If Check1 = 1 And Check2 = 0 And Check3 = 0 Then s = s + 1
Check1 = 0
Check2 = 0
Check3 = 0
Label1 = "В каком году Майков поступил на юридический факультет"
Text1 = "1837"
Text2 = "1838"
Text3 = "1835"
k = k + 1
Case 12
If Check1 = 1 And Check2 = 0 And Check3 = 0 Then s = s + 1
Check1 = 0
Check2 = 0
Check3 = 0
Label1 = "Где похоронен Я.П.Полонский"
Text1 = "в Рязани"
Text2 = "в Петербурге"
Text3 = "в Москве"
k = k + 1
Case 13
If Check1 = 1 And Check2 = 0 And Check3 = 0 Then s = s + 1
If s = 12 And s Ваша оценка 5 (отлично)")
If s = 10 And s Ваша оценка 4 (хорошо)")
If s = 7 And s Ваша оценка 3 (удовлетворительно)")
If s = 0 And s Ваша оценка 2 (неудовлетворительно)")
End
End Select
End Sub
Private Sub Command2_Click()
Load Form2
Form2.Show
Form24.Hide
End Sub
Private Sub Form_Load()
k = 1
s = 0
Label1 = "В каком году родился А.Н.Майков"
Text1 = "1821"
Text2 = "1897"
Text3 = "1895"
End Sub
СВОЙСТВА ГРАФИЧЕСКИХ ИЗОБРАЖЕНИЙ
Цель работы: познакомить с объектами графических изображений и их свойствами. Понятие события. Правильно выбрать событие и свойства графического объекта.
Задачи: Создать программу с использованием графических изображений
Ход работы:
Объект Image
Свойство Picture
Stretch=True (Размеры изменяются относительно размера объекта Image)

Задание1. Создайте папку ГРАФИКА. Перекопируйте в неё 5 изображений. На форме поставьте 5 объекта Image и каждому объекту свойству Picture добавьте картинку. Свойству Stretch дайте значение True. Если необходимо, то измените размер картинки. При запуск программы необходимо, чтобы не было видно ни одной картинки, а при нажатии кнопки появлялась соответствующая картинка
З

Задание 3. Создайте новую форму. Добавьте объект Image. Свойству Picture поставьте небольшую картинку. (С:\Program Files\ Microsoft Visual Studio\ Common\Graphics\Icons\Misc) Свойству Stretch дайте значение True. Если необходимо, то измените размер картинки. Получите с помощью нужных кнопок, чтобы изображение перемещалось поочерёдно в различные углы картинки.
Задание 4. Напишите программу, чтобы при нажатии на соответствующие кнопки изображение увеличивалось или уменьшалось относительно предыдущего размера.
Задание 5. На форме расположите рядом 6 различных картинок. При открытии формы все изображения видны. Создайте 8 кнопок, при нажатии на которых изображение с данным названием исчезало, а кнопка № 7 прятала все изображения одновременно, кнопка № 8 – показывала все изображения.
М

Задание 6. Используя массив графических элементов, создайте программу, при нажатии на рисунки, сами рисунки исчезают. При открытии программы все рисунки видны.
Задание 7. Создать задания 1, 5, используя массив графических изображений
Задание 8. Создайте летающую бабочку.
В графическом редакторе Paint нарисуйте два движения бабочки и сохраните в свою папку.
П

Поставьте ещё один объект Image, свойству Name задайте значение Screen.
Поставьте объект Timer. Свойству Interval задайте значение 1000.
Дважды щёлкните по форме и напишите программу:
nom = 0
kadr(0).Visible = False
kadr(1).Visible = False
Дважды щёлкните на часах и напишите программу:
screen.Picture = kadr(nom).Picture
nom = nom + 1
If nom = 2 Then
nom = 0
End If
Объявите массив перед программами.
Запустите программу и посмотрите что получилось. Если программа не идёт, проверьте всё сначала и найдите ошибки.
Задание. Придумайте свою анимацию из 3 картинок и оформите её.
СОЗДАНИЕ ОРГАНАЙЗЕРА
Цель работы: познакомить с компонентами ComboBox, Frame , Microsoft Common Dialog , Timer и их свойствами.
Задачи: создавать органайзер. Его функции: блокнот, напоминания на день, адресные книжки (e-mail и телефоны/адреса), часы.
Ход работы:
Компонент ComboBox с именем Combo1 (в свойстве List пишите "Адресная книжка E-Mail"ов", на след. строке "Телефоны и адреса" и последнее "Блокнот")
Два текстовых поля с именами TextB и Text1
Шесть кнопок с именами: Command1("Записать в планы"), Command2("Прочитать планы на сегодня"), B_Open("Открыть"), B_Save("Сохранить"), B_Print("Печать"),B_Clean("Отчистить")
Frame с именем AddDayTip, а в нем кнопка Command3, текстовое поле Text2 иLabel с именем Label1.
Компонент Microsoft Common Dialog с name"ом CD1
И таймер с именем Timer1 и интервалом 1000
Примерно, у вас должно получиться следующее:
Т
еперь приступим к коду:
Private Sub B_Clean_Click()
TextB.Text = ""
End Sub
Private Sub B_Open_Click()
CD1.ShowOpen
On Error GoTo error4
Open CD1.FileName For Input As #4
TextB.Text = Input(LOF(4), 4)
Close
error4: If Err 0 Then
MsgBox "Неизвестная ошибка!", vbCritical, "Ошибка при открытии текста" End If
End Sub
Private Sub B_Print_Click()
Printer.Print TextB.Text
Printer.EndDoc
End Sub
Private Sub B_Save_Click()
CD1.ShowSave
On Error GoTo error4
Open CD1.FileName For Output As #4
Print #4, TextB.Text
Close
error4: If Err 0 Then
MsgBox "Неизвестная ошибка!", vbCritical, "Ошибка при записи текста"
End If
End Sub
Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
If Combo1.Text = "Адресная книжка E-Mail"ов" Then
On Error GoTo error5
Open "e-mail/address.txt"For Input As #5
TextB.Text = Input(LOF(5), 5)
Close
error5: If Err 0 Then
MsgBox "Произошла ошибка. Возможно вы удалили файл address.txt из папки E-Mail!!!", vbCritical, "Ошибка при просмотре e-mail адресов" End If
End If
If KeyCode = 13 Then
If Combo1.Text = "Телефоны и адреса" Then
On Error GoTo error6
Open "TelAdr/address&tel.txt" For Input As #6
TextB.Text = Input(LOF(6), 6)
Close
error6: If Err 0 Then
MsgBox "Произошла ошибка. Возможно вы удалили файл address&tel.txt из папки TelAdr!!!", vbCritical, "Ошибка при просмотре e-mail адресов" End If
End If
End If
End If
If KeyCode = 13 Then
If Combo1.Text = "Блокнот" Then
TextB.Text = ""
End If
End If
End Sub
Private Sub Command1_Click()
AddDayTip.Visible = True
End Sub
Private SubCommand2_Click()
On Error GoTo error2
Open "rememdaytip/" & Date & ".txt"For Input As #3
TextB.Text = Input(LOF(3), 3)
Close
error2: If Err 0 Then
TextB.Text = "Планов на сегодня у вас нет !"
End If
End Sub
Private SubCommand3_Click()
On Error GoTo error3
Open "rememdaytip/" & Text2.Text & ".txt" For Output As #2
Print #2, TextB.Text
Close
error3: If Err 0 Then
MsgBox "Произошла неизвестная ошибка !", vbCritical, "Ошибка при записи напоминания в планы"
End If
AddDayTip.Visible = False
End Sub
Private SubForm_Load()
Text1.Text = Date
On Error GoTo error1
Open "rememdaytip/" & Date & ".txt" For Input As #1
TextB.Text = Input(LOF(1), 1)
Close
error1: If Err 0 Then
TextB.Text = "Планов на сегодня у вас нет !"
End If
End Sub
Private SubTimer1_Timer()
Me.Caption = "Время: " & Time
End Sub
Цель работы: Правильно определить свойства компонентов.
Задачи: Создать часы с будильником. Они не будут соваться в АВТОЗАГРУЗКУ - это будет в следующих уроках. Они просто будут показывать время и показывать заданное вами сообщение в заданное вами же время).
Ход работы:
1. Создадим форму с именем frmClock
2. Создадим форму c именем frmAlarm
3. Не все свойства можно изменить с помощью кода, так что правим некоторые свойства:
В форме frmAlarm у текстового поля text4, свойство MultiLine делаем равным true
Свойство BorderStyle у обоих форм делаем равным Fixed Single
1. На форме frmClock создадим два Label"а с именами ATime и AText, в них мы будем писать данные из будильника.
Пока вроде все, не помню =). Начнем, пока, писать код. Сейчас пишем в frmClock:
Private Sub Command1_Click()" загружаем форму с данными будильника frmAlarm.ShowEnd SubPrivate Sub Form_Load()" интервал таймера 1 секундам Timer1.Interval = 1000AText.Visible = FalseATime.Visible = FalseEnd SubPrivate Sub Timer1_Timer()" что бы Label показывал каждую секунду время Label1.Caption = Time" если текст в Label1 равен заведенному нами времени, тоIf Label1.Caption = ATime.Caption Then" вылазит стандартное окно сообщения с заданным" нами временем MsgBox AText.Caption, vbOKOnlyEnd IfEnd Sub
Теперь не помешает написать код для будильника. Это совершенно несложно. Порой я думаю может все мои уроки кажутся вам детским садом ? Что ж обещаю в следующем уроке сделать, что-нибудь более сложное и интересное ! Ну, а пока код для frmAlarm :
Private Sub Form_Load()"теперь в тектовые поля №1,2,3 нельзя вписать более 2 символовText1.MaxLength = 2Text2.MaxLength = 2Text3.MaxLength = 2End SubPrivate Sub Form_Unload(Cancel As Integer)" пишем в Lablе ,предназначенный для времени" в которое прозвенит будильник, три значения из текстовых полей" и между каждым заначением вставляем ":"frmClock.ATime.Caption = Text1.Text & ":" & Text2.Text & ":" & Text3.Text" пишем в Lable, предназначенный для тескта сообщения во время звонка будильника" текст, который мы хотим увидеть в назначенное времяfrmClock.AText.Caption = Text4.TextEnd Sub Теперь жмем F5 и видем часы, которые выглядят примерно так:

Смело жмем "будильник" и видем, опять же, примерно следующее:

Пишем в первом текстовом поле часы, во втором минуты и в третьем секунды. Теперь пишем внизу сообщение, которое вы бы хотели увидеть в назначенное вами время. Сделали? Хорошо. Теперь закрываем окно крестиком вверху и ждем назначенного времени. Как только часы на форме frmClock покажут время равное заведенному вами, из лэйбла AText будет взята введенная вами фраза и помещена в окно сообщения ! Все.
ЭЛЕМЕНТЫ УПРАВЛЕНИЯ LISTBOX И COMBOBOX
Цель работы: научиться работать с элементами управления listbox и combobox.
Задачи: Создать часы с будильником. Они не будут соваться в АВТОЗАГРУЗКУ - это будет в следующих уроках. Они просто будут показывать время и показывать заданное вами сообщение в заданное вами же время).
Ход работы:
1.Элементы управления ListBox (список) и ComboBox (поле со списком)
С одномерными массивами в Visual Basic часто используют стандартные элементы управления ListBox(список) и ComboBox (поле со списком). Оба эти элемента используют список. Список в терминах Visual Basic – это массив строк, на который можно формально сослаться с помощью свойства List. СвойствоList – это список строк в элементе управления. Свойство List имеют списки и поля со списком. Основное, что нужно научиться делать – это добавлять и удалять строки в свойстве List этих элементов управления, выбирать элемент из списка, узнавать количество элементов в списке. Добавлять строки в свойство Listсписка или поля со списком можно двумя способами: при проектировании и при выполнении программы.
2. Добавление строк в список во время проектирования
Попробуем добавить строки в свойство List во время проектирования. Для этого сначала добавим в форму элемент управления списком ListBox. Он имеет следующую пиктограмму:
Выделим этот элемент управления в форме, перейдем в окно свойств, выберем в окне свойств свойствоList. Появится кнопка с направленной вниз стрелкой. Щелкнем на этой стрелке. Появится список свойстваList. Введем нужную строку в этот список. Для того, чтобы ввести в список свойства List еще одну строку нужно нажать Ctrl + Enter.
3. Добавление строк в список во время выполнения проекта
Списки и поля со списком – динамические элементы по своей природе. Можно изменять значение свойства List этих элементов управления во время проектирования, что конечно удобно при создании программы, но самое главное все-таки добавлять и удалять строки свойства List во время выполнения программы. Для этой цели используются методы AddItem (добавить элемент), RemoveItem (удалить элемент) и Clear (очистить).
Метод AddItem добавляет строку в список свойства List элемента управления списком или полем со списком. Синтаксис этого метода следующий:
Объект.AddItem СтрокаКоторую НужноДобавить
Объект - значение свойства Name элемента управления списком или поля со списком.
Например,
lstMyList.AddItem “Математика”
Чтобы опробовать метод AddItem в действии, сделаем небольшой проект, в котором с помощью методаAddItem в элемент lstSubject будут добавляться названия предметов, которые изучаются в школе. На форму поместим элемент lstSubject и командную кнопку cmdAdd.

В коде командной кнопки, используя метод AddItem, будем добавлять в элемент lstSubject названия изучаемых предметов:
Private Sub cmdAdd_Click( )
lstSubject.AddItem ("Алгебра")
lstSubject.AddItem ("Геометрия")
lstSubject.AddItem ("Русский язык")
lstSubject.AddItem ("Литература")
lstSubject.AddItem ("Физика")
lstSubject.AddItem ("Иностранный язык")
lstSubject.AddItem ("Информатика")
End Sub
Если запустить проект и щелкнуть по кнопке cmdAdd, то в элементе lstSubject вы увидите список предметов.

4. Выбор элемента из списка
Чтобы понять, как Visual Basic определяет, какая строка выбрана из списка свойства List элемента управления ListBox или ComboBox, нужно помнить, что свойство List – это массив строк. Для указания позиции элемента в списке свойства List используется свойство ListIndex. Когда пользователь щелкает на какой-нибудь строке в окне списка, Visual Basic присваивает номер этой строки в качестве значения свойству ListIndex данного элемента управления. Попробуем использовать это свойство в нашем проекте. Добавим в форму метку lblChoice, в свойстве Caption которого будем распечатывать значение выбранного пользователем элемента lstSubject и командную кнопку cmdChoice со значением свойстваCaption “Проверьте значение выбранной строки”.

В коде командной кнопки свойству Caption новой метки будем присваивать значение элементаlstSubject.ListIndex.
Private Sub cmdChoice_Click( )
lblChoice.Caption = lstSubject.List(lstSubject.ListIndex)
End Sub
Опробуйте работу проекта. Вы увидите, что в метке будет появляться та строка списка, которая выбрана пользователем. Вот один из возможных результатов работы программы:

5. Удаление элемента из списка
Удалить строку из списка свойства List элемента управления списком или полем со списком можно с помощью метода RemoveItem. Синтаксис метода следующий:
Объект.RemoveItem Index
Объект – значение свойства Name элемента управления списком или полем со списком;
Index – позиция строки в списке свойства List, которую вы хотите удалить из элемента управления. Для удаления из списка строки, выбранной пользователем, можно использовать свойство ListIndex.
Добавим в форму проекта, который мы начали делать в предыдущих пунктах занятия, еще одну командную кнопку cmdRemove с значением свойства Caption “Удалить выделенную строку”. Код у нее будет такой.
Private Sub cmdRemove_Click( )
lstSubject.RemoveItem (lstSubject.ListIndex)
End Sub
После щелчка на кнопке cmdRemove на стадии выполнения проекта из списка будет удаляться выделенная строка.
6.Удаление всех элементов из списка
Чтобы удалить все строки из списка или поля со списком, можно использовать метод Clear. Его синтаксис:
Объект.Clear
Добавьте в свой проект командную кнопку cmdClear с значением свойства Caption “Удалить все строки” и допишите для нее код.
Private Sub cmdClear_Click ( )
End Sub
7.Свойство ListCount элементов управления ListBox и ComboBox
Чтобы узнать, сколько элементов в настоящий момент находится в списке, можно воспользоваться свойством ListCount. Добавьте в свой проект метку lblCount, значение свойства Caption которой будет присваиваться значению свойства ListCount
lblCount.Caption = lstSubject.ListCount
Эту строку лучше поместить в коде какой-нибудь командной кнопки.
8. Доступ к отдельным элементам списка
Чтобы просмотреть отдельный элемент списка или поля со списком, можно использовать свойство List:
Объект . List (индекс)
При этом необходимо помнить, что индекс первого элемента в списке – 0, второго – 1 и т. д. Вот так, например, в свойстве Caption метки lblProba можно увидеть содержание третьего элемента списка нашего проекта:
lblProba . Caption = lstSubject . List (2)
Доделайте проект таким образом, чтобы значение какого-нибудь элемента списка распечатывалось в свойстве Caption метки.
9. Сравнение элементов управления ListBox (список) и ComboBox (поле со списком)
Элементы управления список и поле со списком во многом похожи. Способы их использования почти одинаковы. Разница лишь в том, что поле со списком комбинирует элементы управления списком и полем текста и позволяет либо сделать нужный выбор из списка, либо ввести нужный вариант, напечатав его.
Вы не можете выбрать или ввести данные, которых в списке нет, используя только элемент управленияListBox. Для этого вам придется вводить в код дополнительно, например, функцию InputBox. В качестве элемента управления поле со списком обладает большей гибкостью и экономнее использует место в форме. Поле со списком имеет свойство Style (стиль), которое дает возможность выбрать подходящие характеристики элемента управления и его внешний вид.
Мы ограничимся упоминанием различий в этих элементах управления. Подробно разбирать их отличия на практике не будем..
10.Проект prjSubjects. Постановка проблемы
Чтобы на практике опробовать работу одномерного массива с элементом ListBox, сделаем следующий проект. Цель пользователя данного проекта – сформировать перечень предметов, которые изучаются в том учебном заведении, где он учится, в его подразделении в текущем учебном году. (Мы опять предполагаем, что пользователь – ученик.) Для формирования своего перечня он может воспользоваться стандартным перечнем предметов, которые в проекте первоначально формируются в виде одномерного массива. Пользователь, если захочет, может добавить элементы этого массива в объект ListBox, может удалить предварительно выделенные мышкой названия предметов из ListBox и добавить те, которых нет в стандартном списке. Все эти манипуляции пользователь может проделать с помощью первой формы.(Назовем ее frmStandartSubj). Далее он сообщает, что элементы обновленного массива подготовлены, щелкнув на соответствующей командной кнопке, после чего этот массив формируется и распечатывается на второй форме проекта. (Назовем ее frmMySubj).
11. Формирование массива и передача значений его элементов элементу управленияListBox
В нашем проекте будет фигурировать массив названий предметов nameSubj( ). Массив потребуется нам и в коде первой формы, и в коде второй формы. Он должен быть глобальным. Добавим в проект модуль. Назовем его modSubj. Объявим в модуле кода глобальный массив, состоящий из 16 элементов. Вы в своем проекте можете изменить эту цифру. Запишем соответствующую строку кода:
Public nameSubj( 15)
В модуле кода “заполним” массив элементами – это будет стандартный список из 16 предметов. Все это сделаем в процедуре Inpt( ). Допишите процедуру.
Public Sub Inpt( )
nameSubj(0) = "алгебра"
nameSubj(1) = "геометрия"
. . .
End Sub
Затем в коде первой формы вызовем процедуру Inpt( ), чтобы массив к данному моменту времени уже существовал заполненный стандартным набором названий предметов. С помощью метода AddItemзаполним ими строки элемента ListBox. Назовем этот элемент управления lstSubject. Эти операции можно поместить в коде командной кнопки cmdStandart с значением свойства Caption, равным строке“Стандартный набор предметов”. Составим код.
Private Sub cmdStandart_Click( )
Dim i As Integer
Call Inpt
For i = 0 To 15
lstSubject.AddItem (nameSubj(i))
Next i
End Sub
Пользователь, выполнив всю ту часть проекта, которую мы описали, сможет увидеть в элементе lstSubjectстандартный набор названий дисциплин. Нужно дать ему возможность удалять выбираемые им названия вlstSubject и дополнять список теми названиями, которыми он считает нужным его дополнить. Предоставим ему эти возможности, составив соответствующие коды.
Поместим на первую форму командную кнопку cmdRemove, с помощью которой пользователь сможет удалить выбранное им название предмета, и рядом с ним поместим метку, в свойстве Caption которой будет строка “Выберите предмет, которого у Вас нет”. В свойстве Caption кнопки поместим значение: “Удалите его”. Составьте код, используя метод RemoveItem.
Private Sub cmdRemove_Click( )
End Sub
Чтобы пользователь смог дополнить список lstSubject каким-то еще названием, поместим на первую форму еще одну командную кнопку cmdAdd, свойство Caption которой зададим значением “Добавить”.Рядом с ней поместим метку с текстом в свойстве Caption “Хотите добавить элемент, которого нет в списке?”. Название предмета будем вводить с помощью функции InputBox, а пополнять список элементаlstSubject – с помощью метода AddItem. Дополните код.
Private Sub cmdAdd_Click( )
Dim NewSubject As String
NewSubject = InputBox("Введите название нового_ предмета", "новый предмет")
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
End Sub
12. Присвоение значений свойства List элемента ListBox массиву
Далее нам предстоит дописать код, с помощью которого значения массива nameSubj( ) будут изменяться на новые, откорректированные пользователем с помощью действий над lstSubject. Все новые значения хранятся в элементе lstSubject в свойстве List. Наша задача – перенести их в массив nameSubj( ).Очистим массив от предыдущих значений, т.е. присвоим каждому элементу массива значение пустой строки. Это можно сделать в отдельной процедуре, скажем, в первой форме. Назовем ее Clear( ).Составьте для нее код.
Private Sub Clear( )
End Sub
Теперь присвоим всем элементам массива nameSubj( ) значения, находящиеся в свойстве List элементаlstSubject. Сделаем это в коде командной кнопки cmdOut, которую поместим на первую форму. СвойствуCaption присвоим значение “Готово”. Сначала выполним процедуру Clear, затем выясним количество элементов в свойстве List элемента lstSubject, после чего присвоим элементам массива соответствующие строки lstSubject.
Private Sub cmdOut_Click( )
Dim k,i As Integer
Call Clear
k= lstSubject.ListCount
For i = 0 To k - 1
nameSubj(i) = lstSubject(i)
Next i
Call Passage
End Sub
В последней строке кода вызывается процедура Passage( ), в которой первая форма выгружается, а вторая загружается и показывается. Составим ее код.
Private Sub Passage( )
UnLoad frmStandartSubj
Load frmMySubj
frmMySubj . Show
End Sub
Поскольу массив nameSubj( ) глобальный, его значения будут видимы во второй форме. Итак мы закончили работу с первой формой. Вот как она может выглядеть в работе:

13. Печать измененных значений массива на второй форме
Нам осталось распечатать на второй форме значения измененного массива nameSubj( ).Сделаем это в коде командной кнопки, помещенной на вторую форму со значением свойства Caption “Распечатайте названия предметов”. Составьте код самостоятельно:
Private Sub Command1_Click( )
End Sub
Вторая форма в работе проекта может выглядеть приблизительно так:

14. Проверка количества элементов lstSubject, откорректированного пользователем
Возможен случай, что откорректированный список в элементе lstSubject содержит большее количество строк, чем объявленный массив. Чтобы избежать появление ошибки, перед присвоением элементов откорректированного списка lstSubject, нужно убедиться, что количество элементов списка не превышает 16. Если это не так, нужно сообщить об этом пользователю и дать ему возможность исправить ситуацию. Доделайте это самостоятельно.
Цель работы: научиться создавать анимацию на форме.
Задачи: Описать компоненты программы, задать его свойства и определить работу каждого компонента.
Ход работы:
1. Простейшие приемы “малой” анимации
Во многих проектах оказывается уместной “малая” анимация, позволяющая сделать более наглядным для пользователя ход некоторого процесса или изменение некоторого состояния.
Принцип анимации был известен еще до изобретения кинематографа и с тех пор не изменился. Чтобы привести картинку в движение (анимировать, т.е. “оживить” ее), необходимо быстро продемонстрировать последовательность картинок, изображающих фазы движения. Средства Visual Basic предоставляют для этого широкие возможности. Можно перемещать по экрану текст или графику, анимировать точечные рисунки путем последовательной смены фаз, можно анимировать командную кнопку. Общий принцип не меняется. Он заключается в том, что либо изменение некоторых параметров объекта (например, его координат на форме), либо последовательная смена его содержимого (точечного рисунка на поверхности кнопки или в элементе Image) производится по событиям таймера. И, собственно анимацию, таким образом, всегда выполняет процедура обработки события Timer.
2.1 Проект prjClock. Графический интерфейс пользователя
В проекте, который вы будете делать, будет поворачиваться стрелка с севера на восток, затем на юг, затем на запад и обратно на север. Каждый поворот стрелки будет сопровождаться коротким звуковым сигналом. Повороты будут осуществляться через небольшие равные промежутки времени. Форму назовите (свойство Name) frmClock, свойству Caption присвойте значение Часы.
Поместите на форму элемент управления Image, назовите его imgClock. Из коллекции графических значков Visual Basic выберите файл, содержащий пиктограмму стрелочки, показывающей на север. Свойству Picture элемента imgClock присвойте значение имени этого файла. Таким образом, начальное изображение элемента imgClock будет стрелочка, направленная вверх.

Вставьте четыре метки на форму С, В, Ю, З используйте любой цвет и шрифт. Поместите на форму элемент управления Timer. Свойству Name его присвойте значение tmrTimer. Установите свойство Interval в 250 миллисекунд, чтобы он генерировал событие Timer каждые четверть секунды.
Кроме этого поместите на форму четыре элемента image. Первый назовите imgRight и поместите на него с помощью свойства picture картинку со стрелочкой вправо, второй назовите imgDown и поместите на него картинку со стрелочкой вниз, третий назовите imgLeft и поместите на него картинку со стрелочкой влево, четвертый назовите imgUp и поместите на него картинку со стрелочкой вверх. Свойство Visible у этих элементов image приравняйте значению False.
Еще на форму поместите две командные кнопки. Одну назовите cmdStart и значение свойства Caption у нее задайте равное Старт, вторую назовите cmdFinish и значение свойства Caption у нее задайте равное Финиш.
2.2 Проект prjClock. Составление кода
Приступим к составлению кода проекта. В нашем проекте потребуется переменная, поэтому в общей части проекта (перед всеми процедурами) объявим переменную:
Dim С As Integer
Переменная имеет имя С, значения, которые она может принимать – натуральные числа. В процедуре cmdFinish_Click программа заканчивает свою работу. Составьте соответствующий код:
Private Sub cmdFinish_Click( )
End Sub
В процедуре cmdStart_Click( ) будет включаться таймер, т.е. его свойство Enabled будет приравниваться значению True. Составьте код.
Private Sub cmdStart_Click( )
End Sub
Анимировать движение стрелки будем в процедуре tmrTimer_Timer( ). Если значение переменной Сравно нулю, будем свойство Picture нашего главного элемента imgClock приравнивать значению свойстваPicture элемента imgRight. Этому смысловому “куску” кода соответствуют следующие строки:
If C = 0 Then
ImgClock.Picture = imgRight.Picture
End If
Если значение переменной C равно единице, будем свойство Picture нашего главного элемента imgClockприравнивать значению свойства Picture элемента imgDown. Этому смысловому фрагменту кода соответствуют следующие строки:
If C =1 Then
ImgClock.Picture = imgDown.Picture
End If
Если значение переменной C равно двойке, будем свойство Picture нашего главного элемента imgClockприравнивать значению свойства Picture элемента imgLeft. Этому смысловому фрагменту кода соответствуют следующие строки:
If C = 2 Then
ImgClock.Picture = imgLeft.Picture
End If
Если значение переменной C равно трем, будем свойство Picture нашего главного элемента imgClockприравнивать значению свойства Picture элемента imgUp. Этому смысловому фрагменту кода соответствуют следующие строки:
If C = 3 Then
ImgClock.Picture = imgUp.Picture
End If
Далее будем увеличивать значение переменной C на единицу:
C = C + 1
Если значение переменной становится равным четырем, то мы его снова обнуляем и процесс повторяется.
If C = 4 Then
C = 0
End If
В конце кода поставим оператор Beep, который воспроизводит короткий звуковой сигнал. Напишите все, что обсуждалось выше в коде и опробуйте свой проект на компьютере.
Private Sub tmrTimer_Timer( )
End Sub
3. Проект prjJumps. Описание задачи. Подготовительные работы
Сейчас мы будем делать проект, в котором на форме по диагонали из нижнего правого угла в левый верхний угол будет прыжками передвигаться котенок. Как только он добирается в несколько прыжков до левого верхнего угла формы, его прыжки начинаются снова с начальной точки в прежнем направлении.
Для проекта сделаем два рисунка – две фазы движения котенка: один – когда все лапки котенка находятся на земле, а другой – когда две передние лапки подняты относительно двух задних в прыжке. Сделаем эти два рисунка в графическом редакторе и запишем на диск два файла.
Пусть первый файл будет называться Cat1.bmp, а второй – Cat2.bmp.


На форме у нас будет один элемент image. Мы, поочередно вызывая в него с помощью методаLoadPicture то одну, то другую картинку и передвигая этот элемент по форме (метод Move), будем имитировать прыжки котенка. Все это будет происходить по событиям таймера.
3.1 Графический интерфейс пользователя проекта prjJumps
Опишем поочередно все элементы управления, которые будут участвовать у нас в проекте, и зададим некоторые их свойства.
Форме дадим имя (свойство name) frmJumps. Свойству Caption присвоим значение: “Прыжки котенка”. Зададим свойства формы Height =3600 и width = 4800.
Поместим на форму таймер, назовем его tmrTimer. Свойства Enabled –False, а Interval – 250миллисекунд.
Элемент image назовем imgPic. Свойству Stretch присвоим значение True, Left зададим 2160, Top 3600 , то есть он будет размещаться в правом нижнем углу формы. C помощью свойства Picture поместим в элемент imgPic картинку Cat1.bmp.
Еще поместим на форму две командные кнопки для начала и завершения движения. Первую назовемcmdJump, свойство Caption у нее зададим как “Прыгай”. Вторую назовем cmdExit. СвойствeCaption присвоим значение “Хватит”.
В результате форма будет выглядеть приблизительно следующим образом:
3.2 Код проекта prjJumps
Командная кнопка cmdExit существует у нас для выхода из проекта, поэтому несложно дописать код:
Private Sub cmdExit_Click( )
End Sub
Командная кнопка cmdJumps существует у нас для начала движения, поэтому, как и в предыдущем проекте в соответствующем коде запускается таймер. Дополните код:
Private Sub cmdJump_Click( )
End Sub
Все основное “действие” - анимация движения котенка в нашем проекте будет представлено в коде таймера. В начале этого кода объявим переменную, в зависимости от значения которой будем передвигать элемент imgPic и вызывать в него поочередно первую или вторую картинку. Назовем ее JumPic и объявим как статическую:
Static JumPic As Integer
Далее, если значение переменной равно 0, т.е. начальное, то будем на том же самом месте менять картинку:
If JumPic = 0 Then
ImgPic.Move 3600, 2160
ImgPic.Picture = LoadPicture (“Cat2.bmp”)
End if
Если значение переменной равно 1, котенок должен совершить свой первый прыжок и фаза движения его сменится:
If JumPic = 1 Then
ImgPic.Move 2870, 1630
ImgPic.Picture = LoadPicture (“Cat1.bmp”)
End if
Если значение переменной равно 2, то котенок должен совершить второй прыжок со сменой фазы движения:
If JumPic = 2 Then
ImgPic.Move 2150, 1630
ImgPic.Picture = LoadPicture (“Cat2.bmp”)
End if
Если значение переменной равно 3, то котенок совершает третий прыжок:
If JumPic = 3 Then
ImgPic.Move 1330, 770
ImgPic.Picture = LoadPicture (“Cat1.bmp”)
End if
Для четвертого прыжка фрагмент кода следующий:
If JumPic = 4 Then
ImgPic.Move 610, 430
ImgPic.Picture = LoadPicture (“Cat2.bmp”)
End if
Для пятого:
If JumPic = 5 Then
ImgPic.Move 0, 0
ImgPic.Picture = LoadPicture (“Cat1.bmp”)
End if
И для непрерывности процесса увеличиваем значение переменной на единицу:
JumPic = JumPic + 1
Больше котенку прыгать некуда, поэтому снова присваиваем переменной значение 0:
If JumPic = 6 Then
JumPic = 0
End if
Все это, как уже говорилось, мы помещаем в код таймера события Timer.
Составь окончательный код для таймера:
Private Sub tmrTimer_Timer( )
End Sub
Выполните проект на компьютере. Подумайте, как можно упростить код.
4. Задания
А) Если вы сумели упростить код проекта prjJuumps, пришлите его преподавателю. Интересные и правильные варианты проектов слушателей будут размещены на сервере.
Б) Придумайте и сделайте свой анимационный проект.


Лабораторный практикум по visul basic 6.0 (1.71 MB)

