Реферат по предмету "Программирование"


Построение многооконных приложений для Windows

Построение многооконных приложений для Windows

Владимир Коробицын
Календарь. Генератор звуковых волн

После
запуска C++ Builder в вашем распоряжении имеется только одна форма Form1 – стартовая
форма будущего приложения для Windows. Если вы хотите построить приложение,
использующее в своей работе, например, три окна – кликните мышью на значок New
Form (Новая форма) два раза. Вы получили две новые формы: Form2 и Form3. Такого
же результата можно добиться по-другому. А именно в меню File выберите команду
New, а затем Form. Во время работы приложения на экране могут одновременно
отображаться все три формы, или любые две, либо любая одна из них. Для того
чтобы из любой формы можно было управлять остальными формами, их файлы Unit1.h,
Unit2.h и Unit3.h необходимо связать. В заголовочной части файла Unit1.cpp для
первой формы нужно дописать директивы:

#include
"Unit2.h" //включить вторую форму в проект

#include
"Unit3.h" //включить третью форму в проект

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

#include
"Unit1.h" //включить первую форму в проект

Для
второй и третьей форм сделать аналогичные записи в файлах Unit2.cpp и Unit3.cpp.
После этого формы начнут «чувствовать» друг друга – станет возможно управление
из любой формы оставшимися другими. Если в процессе разработки многооконного
приложения какая-либо из форм окажется недоступной, для ее появления на экране
выберите в меню View (Просмотр) команду Forms… (Формы) или с клавиатуры
отработайте клавишный аккорд Shift+F12. Можно просто кликнуть на
соответствующий значок с изображением нескольких форм.

На
базе связанных между собой форм можно смело приступать к построению многооконного
приложения. Для вызова из одной формы другой можно воспользоваться методом
Show(), который загрузит указанную форму в оперативную память компьютера и
покажет ее на экране. Метод Hide() скрывает форму от взора пользователя, без
выгрузки ее из оперативной памяти. Например, строка программного кода,
написанная в подходящей процедуре прерывания первой или второй формы, покажет
на экране третью форму:

Form3->Show();
//показать третью форму

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

Form3->Hide();
//скрыть третью форму

Полностью
закрыть форму можно с помощью инструкции:

Form3->Close();
//выгрузить третью форму

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

Создайте
приложение на базе трех форм и свяжите их между собой. Общие размеры всех форм
уменьшите примерно в два раза и расположите их пока произвольно в разных частях
экрана. Измените заголовки каждой формы приложения. Пусть окна будут
называться: «Главное меню», «Электронные часы. Календарь» и «Виртуальный
генератор звуковых волн». Снабдите первую и вторую форму подходящими фоновыми
рисунками с помощью знакомого уже вам компонента Image.

На
первой форме установите две электронные кнопки. Увеличьте их ширину в два-три
раза, для того чтобы их можно было подписать «Электронные часы» и «Виртуальный
генератор» соответственно. Напишите функцию обработки Button1Click:

Form2->Show();
//показать вторую форму

Form1->Hide();
//скрыть первую форму

Затем
для второй кнопки напишите функцию обработки Button2Click:

Form3->Show();
//показать третью форму

Form1->Hide();
//скрыть первую форму

На
второй форме установите электронную кнопку для возврата в главное меню и
снабдите ее надписью «Назад». Напишите для нее функцию обработки Button1Click:

Form1->Show();
//показать первую форму

Form2->Hide();
//скрыть вторую форму

Обустройте
третье окно аналогично второму, соответственно изменив программный код. У
второй и третьей форм удалите три кнопки управления окном. Для этого обратитесь
к их составному свойству BorderIcons, которое отвечает за вид окна, кликнув на
«плюс». Чтобы исчезли кнопки управления окном, свойству biSystemMenu (Системное
меню) придайте значение false.

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

На
вторую форму добавьте компоненты Label1 и Label2. Сюда же установите компонент
Timer1 из вкладки System и компонент MonthCalendar1 (Ежемесячный календарь) из
вкладки Win32. Для компонента Timer1 его свойству Interval придайте значение
10. В функцию обработки Timer1Timer запишите инструкции:

Label1->Caption = Date(); //показать дату

Label2->Caption = Time(); //показать время

Через
каждую одну сотую секунды (10 миллисекунд) дата и время будут обновляться. Если
вы хотите чтобы дата и время одновременно выводились в одном поле вывода текста
Label1, то две предыдущие инструкции можно заменить одной:

Label1->Caption
= Now(); //показать дату и время

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

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

На
третью форму добавьте компоненты Button2, Label1, TrackBar1, Image1, Image2.
Компонент TrackBar1 (Движок-регулятор) можно извлечь из вкладки Win32. Ширину
компонента TrackBar1 увеличьте примерно в два-три раза. Свойству Max
(Максимальное положение движка) этого компонента придайте значение 50. Очистите
свойство Caption у компонента Label1. В функцию обработки Button2Click впишите
инструкцию, которая будет генерировать колебания звуковой частоты:

Beep(TrackBar1->Position*100,
1000); //звук

Этот
оператор, отвечающий за генерацию звука, имеет два аргумента. Первый задает
частоту звука в герцах, второй – длительность в миллисекундах. Свойство
Position (Позиция движка) компонента TrackBar1 управляет изменением частоты
звука. В нашем случае можно получить звук частотой от 100 до 5000 Гц с шагом в
100 Гц длительностью в одну секунду. Электронную кнопку Button2Click назовите
«Пуск». Генератор уже работоспособен, но для вывода информации о частоте звука
необходимо в функцию обработки TrackBar1Change (Изменение позиции движка)
записать инструкцию:

Label1->Caption = "Частота звука = " +

IntToStr(TrackBar1->Position)*100
+ " Гц";

Заметьте,
здесь одна инструкция записана с переносом, а поэтому расположилась в двух
строках.

Запустите
приложение и проверьте работоспособность третьего окна. Поэкспериментируйте с
оператором звука Beep, изменяя оба его аргумента. Будьте осторожны с величиной
второго аргумента, так как он отвечает за время звучания.

Добавьте
в окно генератора простейшую анимацию. Для этого вставьте два подходящих
изображения, которые будут отображать состояние генератора, в поля компонентов
Image1, Image2. Этими изображениями могут быть, например, обезьяна в двух
разных состояниях. Когда генератор молчит – обезьяна в задумчивости, когда
присутствует звук – обезьяна улыбается разводит руки. Оба изображения наложите,
друг на друга, так как появляться они будут в разное время. Свойству Visible
компонента Image2 придайте значение false. Теперь функция обработки
Button2Click будет выглядеть так:

Beep(TrackBar1->Position*100,
1000); //звук

Image1->Visible = true; //показать первый рисунок

Image2->Visible
= false; //скрыть второй рисунок

Необходимо
так же будет написать функцию обработки Button2MouseDown:

Image1->Visible
= false; //скрыть первый рисунок

Image2->Visible
= true; //показать второй рисунок

Запустите
приложение. Посмотрите, как теперь работает виртуальный генератор в
сопровождении анимации.

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

Для
подготовки данной работы были использованы материалы с сайта http://bc.boom.ru/


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Колесный сотриментовоз с комбинированной трансмиссией
Реферат Автоматизация звуков в домашних условиях. Дорогие родители!
Реферат V поспеловские чтения 29-30 ноября, 2011г
Реферат Mel Essay Research Paper Dear MelHaving read
Реферат «Международный День родного языка»
Реферат Is Land Worth More Than A Friendship
Реферат К проблеме ценностных критериев пролетарского литературного движения в России в 20-х годах ХХ века
Реферат Гео-информационные системы и эпидемии гриппа
Реферат Механизм формирования корпоративной культуры
Реферат Роль подвижных игр в жизни школьника младшего возраста
Реферат Антивірусна програма Kaspersky Аntivirus Personal 5 1
Реферат Ценности и идеалы средневековой культуры Западной Европы
Реферат Лабораторная диагностика инфекций, передаваемых половым путём
Реферат Курортна інфраструктура господарства Автономної республіки Крим
Реферат Іван Мазепа