Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Глава 19. Проекты из нескольких форм и модулейСодержание книги
Поиск на нашем сайте Эта глава - последний бастион, который нужно взять перед штурмом крепости по имени "Объекты". Но она и сама по себе нужна и важна. Работа с несколькими формами Все проекты, которые мы до этого создавали, работали в одном окне. Окном этим служила форма, на которой мы и собирали проект. Однако, вы вполне можете создать проект, который работает в двух или нескольких окнах. Например, вы создали игру в шахматы. Игра идет, как обычно, в одном окне. Пока компьютер обдумывает свой ход, вы со скуки щелчком по кнопке в окне игры запускаете новое окно, которое предлагает вам поиграть в созданный вами же тетрис. Когда компьютер сделает ход, вы можете поставить тетрис на паузу и продолжить игру в шахматы. Эту игру тетрис вы создавали в том же самом проекте, но собирали ее на другой форме этого проекта.
Посмотрим, как создать в проекте еще одну форму и как наладить простейшее взаимодействие между двумя формами. Создадим новый проект. При этом, как обычно, будет создана форма Form1. Чтобы добавить в проект еще одну форму, нужно выбрать Project®Add Form®New®Form®Open. Откроется форма Form2, а при ней свое окно кода. Таким образом, вы видите, что Visual Basic предоставляет удобную возможность программировать все происходящее в новой форме в окне кода, принадлежащем именно этой форме. Поместим для удобства рядом, как это показано на рисунке, обе формы со своими окнами кода. Разместим на формах показанные элементы управления, а в окна кода запишем программный текст.
Запустим проект. Мы видим, как и положено, Form1, а вот Form2 не появляется. Чтобы она появилась, нужно выполнить оператор Form2.Show. Щелкнем по Command1 - форма Form2 появилась. Пощелкайте по кнопкам Command2 на обеих формах. Теперь посмотрите на содержимое процедур Command2_Click в обоих окнах кода. Вы видите, что первая строка обеих процедур красит своего хозяина, вторая - соседа. Таким образом, в каждом окне кода можно, как и обычно, писать операторы, приказывающие что-то сделать в форме-хозяине данного окна, а можно с таким же успехом писать операторы, приказывающие что-то сделать в любой другой форме проекта. Чтобы Visual Basic отличал первый случай от второго, во втором случае перед именем свойства, принадлежащего другой форме, нужно писать имя этой формы с точкой, в первом же случае - не обязательно. Не обязательно, но можно. Так, в левом окне вместо BackColor = vbBlue можно было бы написать Form1.BackColor = vbBlue или даже так - Me.BackColor = vbBlue. Слово Me является указанием на хозяина. Пощелкайте по кнопкам Command3 на обеих формах. Теперь посмотрите на содержимое процедур Command3_Click в обоих окнах кода. Вы видите, что первая строка обеих процедур выводит текст в текстовое окно Text2 своего хозяина, вторая - в текстовое окно Text1 соседа. Таким образом, соглашение из предыдущего абзаца об имени формы с точкой применимо не только к свойствам формы, но и к объектам, принадлежащим форме, и, как мы сейчас увидим, методам. 3-я строка обеих процедур при помощи методов cls и Print очищает от графики поверхность формы-хозяина и печатает на ней число (11 на левой, 22 на правой). Слово Me пришлось написать, чтобы Visual Basic не посчитал cls: меткой. 4-я строка обеих процедур очищает от графики поверхность формы-соседа и печатает на ней число (21 на левой, 12 на правой). Чуть позже вы увидите, что из одной формы можно обращаться не только к свойствам, объектам и методам, принадлежащим другой форме, но и к переменным, процедурам и другим элементам. Правило везде одно: Перед именем элемента, принадлежащего другой форме, нужно ставить имя формы-хозяина с точкой. Модули кода Пусть вы создали проект из двух форм: в одной игра в шахматы, в другой игра в тетрис. Каждая из форм при запуске проекта довольно долго загружается. Поэтому вы хотите, чтобы перед загрузкой форм компьютер спросил у вас, какую форму нужно загружать. Но мы привыкли, что при запуске проекта на экране какая-нибудь форма появляется обязательно и первым делом. Мы можем изменить этот порядок и сделать так, чтобы никакая форма не загружалась. Добавим в проект так называемый модуль кода (его еще называют программным или стандартным или просто модулем): Project®Add Module®New®Module®Open. Вы видите, что в проект добавилось окно кода модуля Module1. А ничего похожего на форму не появилось. Ни формы, ни кнопок, ни меток, никаких других элементов управления в модуле кода нет и быть не может. Если форма без кода - тело без души, то модуль - душа без тела. Ну что ж, в предыдущем разделе мы научились вселять душу в чужое тело, значит и душа нашего модуля на что-нибудь сгодится. Проект можно настроить так, чтобы при запуске ни одна форма не загружалась, а выполнялась процедура со специальным названием Main, находящаяся в модуле кода. Запишем в окно кода нашего модуля четыре строки:
А вот как настраивать проект: Project ® Project1 Properties ® General ® Startup Object ® здесь Visual Basic предложит вам выбор, с чего начинать запуск проекта - с загрузки формы Form1, с загрузки формы Form2 или с выполнения процедуры Main. Вы, конечно, выбираете ®Sub Main®OK. Запустив этот проект, вы не видите никакой формы, вместо этого перед вами InputBox с приглашением ввести 1 или 2. Введя 1, вы тем самым загружаете Form1, а введя 2 - Form2. Термином модуль часто называют не только модуль кода, но и форму, и неизвестный пока нам модуль класса и некоторые другие сохраняемые в собственных файлах главные компоненты проекта. Я тоже буду так делать, когда это не будет вызывать путаницы. О другом, более часто встречающемся применении модуля кода см. в Глава 20.
|
||
|
Последнее изменение этой страницы: 2016-08-12; просмотров: 315; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.01 с.) |