Задание: создайте приложение с несколькими формами.
Чтобы изучить то, как C++Builder использует модули, создайте приложение с несколькими формами. Это будет простая программа, отображающая вторую форму при нажатии на кнопку.
1. Создайте новый проект, выбрав в главном меню пункт File / New Application.
2. Измените значение свойства Name на MainForm, а свойства Caption — на Multiple Forms Test Program.
3. Сохраните проект. Дайте модулю имя Main, а проекту — имя Multiple.
4. Теперь поместите в форму кнопку (Button). Присвойте свойству Name значение ShowForm2, а свойству Caption — значение Show Form 2.
5. Выберите в главном меню пункт File / New Form (или щелкните на кнопке New Form панели инструментов), чтобы создать новую форму. После создания новая форма будет иметь имя Form1 и разместится точно поверх главной формы. Надо, чтобы новая форма имела меньший размер и была более-менее отцентрирована относительно главной формы.
6. Измените размер и положение новой формы так, чтобы она была примерно в два раза меньше главной формы и располагалась в ее центре. Для перемещения формы используйте строку заголовка. Размер можно изменить перетаскиванием нижнего правого угла.
7. Измените значение свойства Name новой формы на SecondForm, а свойства Caption — на A Second Form.
8. Выберите в главном меню пункт File / Save (или щелкните на кнопке Save File панели инструментов) и сохраните файл под именем Second.
9. Выберите компонент Label и поместите его в новую форму. Измените текст свойства Caption на This is the second form. Измените размер и цвет текста. Отцентрируйте сообщение относительно формы. Теперь ваша форма должна выглядеть примерно как на рис. 3.1.
Рис. 3.1 Вид формы к этому моменту
10. Щелкните на главной форме. Обратите внимание, что вторая форма теперь закрыта главной формой. Дважды щелкните на кнопке Show Form 2. На экране появится окно редактора кода и курсор будет размещен как раз там, где вам нужно начинать ввод текста.
11. Введите текст, приведенный ниже (вам нужно набрать только одну строку в скобках):
12. Запустите программу
Вы получили сообщение об ошибке Undefined symbol 'SecondForm' (He определено обозначение 'SecondForm').
Странно...
SecondForm должно быть правильным именем, ведь именно это имя мы дали второй форме...
Дайте подумать...
Ara!
Вспомните, что у нас есть два исходных файла с соответствующими заголовками. Но в модуле MainForm нет объявления переменной SecondForm (которая является указателем на экземпляр класса TSecondForm). Мы должны указать, где расположено объявление класса. Для этого нужно включить заголовочный файл для SecondForm в исходный файл MainForm с помощью директивы #include. Переключитесь в окно редактора кода и щелкните на вкладке Main.cpp для отображения модуля главной формы. Перейдите к началу файла. Первые несколько строк должны выглядеть следующим образом:
Вы видите, что сюда включен заголовочный файл Main.h, но нет файла Second.h, потому что мы не давали указания C++Builder включить этот файл. Давайте сделаем это сейчас.
1. Выберите в главном меню пункт File / Include Unit Hdr. На экране появится диалоговое окно Include Unit, показанное на рис. 3.2.
Рис.3.2 Диалоговое окно Include Unit
2. Перед вами находится список доступных модулей. В данном случае единственным модулем в списке является Second. Щелкните на имени Second, а затем на кнопке ОК, чтобы закрыть диалоговое окно.
Диалоговое окно Include Unit отображает только те модули проекта, которые еще не включены в данный модуль. Включенные модули не содержатся в списке.
После щелчка на кнопке OK C++Builder мгновенно добавит в файл директиву #include для Second.h:
Теперь в модуль Main включено объявление класса из модуля Second. Щелкните на кнопке Run, чтобы запустить программу. На этот раз компиляция пройдет без задержек и программа заработает. Когда вы щелкнете на кнопке Show Form 2, на экране появится вторая форма.
Как видите, C++Builder помогает вам управлять модулями. Вы должны использовать опцию Include Unit Hdr, чтобы обеспечить модулям доступ к объявлениям классов, использующихся в других модулях.
Самостоятельная работа № V
Расчёт по формуле.
Конвертор.