
2_Интерфейс программы.ppt
- Количество слайдов: 22
Интерфейс программы C++ Builder Лекция 2
Основные инструменты интегрированной среды • Палитра компонент содержит более 100 повторно • • используемых компо-нент, предлагаемых для построения приложений. Редактор форм предназначен для создания интерфейса программы с пользователем. Редактор кода предназначен для написания текста программы, в частности, функций обработки событий. Инспектор объектов позволяет визуально устанавливать свойства объектов без необходимости рутинного программирования и содержит события, которые можно связывать с кодами реакции объектов на их возникновение. Хранилище объектов содержит такие объекты, как формы и модули данных, которые разделяются многими приложениями с целью уменьшения временных затрат при разработке.
Интерфейс программы Рис. 1. Основные визуальные инструменты интегрированной среды C++ Builder
Интерфейс программы C++Builder реализует визуальную методику построения приложений посредством выбора из Палитры компонент нужных управляющих элементов (Рис. 1). С каждой компонентой (например, кнопкой) связаны свойства, которые меняют ее вид и поведение. Любая компонента может вызывать серию событий, которые определяют ее реакцию на различные воздействия. => Вызовите C++Builder и начните работу над новым приложением по команде File | New Application из главного меню. => Щелкая мышью по вкладкам Палитры компонент, просмотрите имеющийся ассортимент элементов интерфейса программы с пользователем.
Интерфейс программы Переходя от вкладки к вкладке Палитры, можно заметить, что набор доступных компонент меняется. Когда курсор мыши останавливается на значке компоненты, возникает подсказка с ее названием. Если нажать клавишу F 1, справочная служба системы выдаст полную информацию о выбранной компоненте.
1. Визуальное проектирование Наше первое приложение будет генерировать детскую считалочку "Десять негритят". В начальной версии потребуется только три объекта: список, поле редактирования и кнопка. Перенесем компоненты на форму проектирования и начнем постепенно развивать приложение Метод перетаскивания (drag-and-drop): § нажмите кнопку мыши на выбранной компоненте, § переведите курсор на любое место формы, § и снова нажмите кнопку мыши. Для начала ограничимся "стандартными" компонентами Палитры: => Выберите вкладку Standard. => Перетащите компоненту списка List. Box на форму. => Перетащите компоненту поля редактируемого ввода Edit. Box.
1. Визуальное проектирование Работа с основными инструментами интегрированной среды • Палитра компонент содержит более 100 повторно используемых компонент, предлагаемых для построения приложений. • Редактор форм предназначен для создания интерфейса программы с пользователем. • Редактор кода предназначен для написания текста программы, в частности, функций обработки событий. • Инспектор объектов позволяет визуально устанавливать свойства объектов без необходимости рутинного программирования и содержит события, которые можно связывать с кодами реакции объектов на их возникновение. • Хранилище объектов содержит такие объекты, как формы и модули данных, которые разделяются многими приложениями с целью уменьшения временных затрат при разработке.
1. Визуальное проектирование С каждой компонентой (например, кнопкой) связаны свойства, которые меняют ее вид и поведение. Любая компонента может вызывать серию событий, которые определяют ее реакцию на различные воздействия. => Вызовите C++Builder и начните работу над новым приложением по команде File | New Application из главного меню. => Щелкая мышью по вкладкам Палитры компонент, просмотрите имеющийся ассортимент элементов интерфейса программы с пользователем. => Перетащите компоненту кнопки Button. => Расположите компоненты и измените их размеры так, как вы хотели бы их видеть в окне вашего приложения. С помощью Инспектора объектов определите начальные значения свойств компонент. В графе значений свойства Items списка нажмите кнопку в открывшемся окне редактора введите 7 первых строк стихотворения. В свойстве Caption формы и кнопки укажите их смысловые названия (соответственно, "Десять негритят" и "Результат"). В свойстве Text поля редактирования задайте строку подсказки результата ("Девять негритят").
Визуальное проектирование Рис. 2. Визуальное проектирование формы приложения. Вид формы приложения и свойства компоненты списка TList. Box после выполнения указанных действий. Переключаемся на Редактор кода и напишем, как было принято, любую программу на языке C++, включая последние расширения стандарта ANSI/ISO.
1. Визуальное проектирование Свойства, методы и события Быстрая разработка приложений подразумевает поддержку свойств, методов и событий компонент в рамках объектноориентированного программирования. Свойства позволяют легко устанавливать разнообразные характеристики компонент, такие как названия, контекстные подсказки или источники данных. Методы (функции-члены) производят определенные операции над компонентным объектом, в том числе и такие сложные как воспроизведение или перемотка устройства мультимедиа. События связывают воздействия пользователя на компоненты, такие как активизация, нажатие кнопок или редактируемый ввод - с вашими кодами реакции на эти воздействия. Кроме того, события могут возникать при таких специфических изменениях состояния компонент как обновление данных в интерфейсных элементах доступа к базам данных. Работая совместно, свойства, методы и события образуют среду RAD интуитивного программирования надежных приложений для Windows.
1. Визуальное проектирование => В Инспекторе объектов укажите вкладку Событий (Events), чтобы увидеть все события, ассоциированные с выбранным объектом. => Дважды щелкните мышью по компоненте кнопки, которую вы поместили на форму. Þ В открывшемся окне Редактора кода курсор покажет позицию для ввода инструкций в тело функции Buttonl. Click, предназначенной для обработки события On. Click, возникающего при нажатии кнопки. На Рис. 3 простой код, который в ответ на очередное нажатие кнопки "Результат" присоединяет предыдущую подсказку prev к концу списка и заносит следующую подсказку next в поле редактирования. Инструкция List. Boxl->Items->Append (prev) присоединяет, с помощью метода Append, строку prev к свойству Items объекта списка List. Boxl. Инструкция Editl->Text = next присваивает строку next свойству Text объекта редактируемого ввода Editl. Строки подсказок хранятся в двумерном массиве count и индексируются целой переменной типа static, сохраняющей текущее значение между вызовами функции обработки события, возникающего при нажатии кнопки Buttonl.
1. Визуальное проектирование Рис. 3. Редактор кода обеспечивает ввод и редактирование текста исполняемого модуля в файле Unit 1. cpp.
2. Создание рабочей программы => Командой главного меню Run | Run запустите процесс компиляции и сборки приложения. => После вызова программы несколько раз нажмите на кнопку "Результат". Рис. 4 показывает вид формы приложения после девяти нажатий на кнопку "Результат". Чтобы игнорировать последующие нажатия кнопки, в функции обработчика события предусмотрена инструкция возврата if (i == 9) return; Вместо предлагаемых программой подсказок, можно вводить любую строку результата синтаксический (и семантичес. Рис. 4. Работа первой версии приложения "Десять негритят". кий) анализ текста не предусмотрен.
2. Создание рабочей программы Технология двунаправленной разработки C++Builder не ставит барьеров между программистом и его кодом. Технология двунаправленной разработки Two-Way Tools обеспечивает контроль за вашим кодом посредством гибкого, интегрированного и синхронизированного взаимодействия между инструментами визуального проектирования и Редактором кода. Чтобы проследить за тем, как действуют инструменты двунаправленной разработки, выполните следующие операции: => Откройте контекстное меню Редактора кода щелчком правой кнопки мыши, а затем с помощью опции Swap Cpp/Hdr Files переключитесь на файл объявлений Unit 1. h. . => Организуйте экранное отображение инструментов так, чтобы одновременно видеть проектируемую форму и файл Unitl. h в окне Редактора кода. => Перетащите еще одну компоненту кнопки OK Button на форму. В свойстве Caption кнопки укажите ее смысловое название "Новый куплет".
2. Создание рабочей программы Рис. 5. C++Builder автоматически генерирует объявления в файле Unit 1. h, поддерживая постоянный контроль программиста над его кодом
2. Создание рабочей программы Проследите за тем, что как только вы перенесли кнопку на форму, объявление объекта Button 2 моментально появится в файле Unit 1. h, а определение события On. Click сгенерирует объявление метода Button 2 Click обработчика этого события (Рис. 5). Такая синхронизация процессов проектирования формы и автоматической генерации кода действительно ускоряет визуальную разработку C++ приложения, полностью сохраняя контроль над исходным текстом программы.
2. Создание рабочей программы Сделаем еще один шаг в разработке нашего первого приложения - заставим его генерировать куплеты автоматически. Для этого придется наполнить содержанием функцию обработки события On. Click при нажатии кнопки "Новый куплет". Рис. 6. Новый обработчик события в файле Unit 1. cpp
2. Создание рабочей программы Рис. 6 показывает простой код, который в ответ на очередное нажатие кнопки "Новый куплет" выводит друг за другом семь строк нового куплета, причем первая и третья строки берутся из переменной prev. Поскольку значение этой переменной присваивает обработчик события кнопки "Результат", пришлось переопределить ее в секции public пользовательских объявлений класса формы (выделенная строка на Рис. 5), чтобы сделать доступной обработчикам событий обеих кнопок. Смысл этого действия ООП, прояснится в следующих лекциях.
2. Создание рабочей программы Рис. 7 показывает работу законченной версии приложения "Десять негритят" после девяти парных нажатии на кнопки "Результат" и "Новый куплет". Список приобрел вертикальную линейку прокрутки, чтобы можно было просматривать все стихотворение целиком.
2. Создание рабочей программы C++Builder ассоциирует с каждым приложением три исходных файла со следующими именами по умолчанию: • Unitl. cpp хранит исполняемый код реализации вашего приложения. Именно в нем вы записываете обработчики событий, отвечающие за реакцию программы при воздействии пользователя на объекты компонент. • Unitl. h содержит объявления всех объектов и их конструкторов. Обратите внимание на ключевое слово _fastcall в объявлениях функций обработки событий, которые C++Builder генерирует автоматически. Благодаря _fastcall передача параметров организуется не через стек, а через регистры центрального процессора. Вызовы обработчиков событий происходят очень часто, поэтому экономия времени, затрачиваемого на выборку параметров из памяти стека, оказывается весьма ощутимой. Здесь кроется одна из причин высокого быстродействия приложений, которые компилирует и собирает C++Builder. • Projectl. cpp обслуживает все объекты, заключенные в приложении. Любая новая форма, программный модуль или модуль данных автоматически включаются в проектный файл. Вы можете просмотреть в окне Редактора кода содержание исходного текста проектного файла с помощью команды главного меню View | Project Source или выбрав одноименную опцию из контекстного меню Администратора проекта. Ни в коем случае не редактируйте проектный файл вручную!
3. Сохранение исходных файлов Выполнить одно из следующих действий: • => Команда File | Save All сохраняет все исходные файлы приложения. • => Команда File | Save сохраняет оба файла программного модуля, а команда File | Save As позволяет дать им новое имя. • => Команда File | Save Project As сохраняет изменения всех составляющих проектного файла, используя текущие имена файлов.
2_Интерфейс программы.ppt