Студопедия — РАЗРАБОТКА ПРОГРАММНОГО КОДА ПРИЛОЖЕНИЯ. СОБЫТИЯ И ОБРАБОТЧИКИ СОБЫТИЙ
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

РАЗРАБОТКА ПРОГРАММНОГО КОДА ПРИЛОЖЕНИЯ. СОБЫТИЯ И ОБРАБОТЧИКИ СОБЫТИЙ






 

Приложения, созданные с помощью C++ Builder, – это приложения для Windows. Одним из основных свойств таких приложений является управление по событиям. Это означает, что программа выполняется на основе генерируемых сообщений о событиях, которые обрабатываются программным кодом приложения. Такой код необходимо написать для каждого события, на которое должна реагировать программа. Процедура, предназначенная для реагирования на какое-либо событие, называется в С++ Builder функцией обработки события. Выделяются две категории событий: события, обусловленные действиями пользователя, – пользовательские события и обычные события – программно-управляемые события.

Функции обработки пользовательских событий составляют главную часть кода приложения. Они обеспечивают интерактивное взаимодействие приложения и пользователя. В C++ Builder для этого применяются предварительно определенные обработчики событий, которые могут использоваться практически всеми компонентами. Сюда относятся обработчики событий мыши и клавиатуры.

К обычным (программно-управляемым) событиям относятся события активизации, завершения, события изменения состояния отдельных компонентов и прочие события, которые являются косвенным результатом действия пользователя.

C++ Builder генерирует процедуры обработки каждого события и дает им имена в соответствии с именами компонентов, для которых эти процедуры предназначены. Например, если дважды щелкнуть по кнопке Button1, в модуле формы будет сгенерирована пустая функция обработки события, которая выглядит следующим образом:

 

void __fastcall TForm1::Button1Click(TObject *Sender)

{

}

Далее необходимо вписать нужный программный код в составной блок.

Выделите кнопку "Вычислить", перейдите на страницу Events в инспекторе объектов и дважды щелкните по имени обработчика события OnClick. Система добавит в текст модуля пустую функцию обработки щелчка по кнопке.

Что должна выполнять эта функция? Во-первых, в ней должно считываться содержимое полей ввода коэффициентов a, b и c; далее считанные значения должны быть превращены в числа, поскольку свойство Text компонента Edit имеет строковый тип; затем должны быть выполнены необходимые вычисления и результат помещен в поля Edit4 и Edit5.

Добавьте в функцию программный код, приведенный ниже.

void __fastcall TForm1::Button1Click(TObject *Sender)

{

float a,b,c,d,x1,x2;

a=StrToFloat(Edit1->Text);

b=StrToFloat(Edit2->Text);

c=StrToFloat(Edit3->Text);

d=b*b-4*a*c;

if (d>=0)

{

x1=(-b-sqrt(d))/(2*a);

x2=(-b+sqrt(d))/(2*a);

Edit4->Text=FloatToStr(x1);

Edit5->Text=FloatToStr(x2);

}

else

ShowMessage("Нет действительных корней");

}

В разделе директив препроцессора модуля формы добавьте строку

#include<math.h>

Данный заголовочный файл позволит воспользоваться библиотекой математических функций (в нашем случае – функцией вычисления квадратного корня).

Отметим в тексте следующие моменты.

Для вычислений мы использовали только локальные переменные, так как их не надо использовать в других процедурах.

Для превращения строки символов в число и обратного преобразования используются функции StrToFloat() и FloatToStr() соответственно. Для выдачи сообщения «Нет действительных корней» используется функция Windows вызова диалогового окна ShowMessage().

Определим функцию обработки щелчка по кнопке "Выход". Щелкните дважды по данной кнопке и в появившемся окне редактора кода добавьте в процедуру Button2Click строку

Form1->Close();

Close() – это метод, закрывающий окно нашего приложения.

Сохраните проект и запустите его на выполнение. Проверьте его работу при различных исходных данных. Если система обнаружит ошибки, устраните их и снова запустите проект на выполнение.

Определим теперь события меню и нажатия кнопок на панели инструментов. Для этого нам не понадобится писать никакого кода. Мы свяжем нужные события с уже определенными событиями – щелчками по кнопкам "Вычислить" и "Выход".

Щелкните по строке меню и затем выберите первый пункт меню "Вычислить". В инспекторе объектов на странице Events в строке обработчика OnClick в списке имеющихся процедур выберите функцию Button1Click. Щелкните мышью по форме и то же самое проделайте с пунктом меню "Выход", только теперь свяжите его с функцией Button2Click. Выберите пункт меню "Справка", в инспекторе объектов дважды щелкните в строке обработчика OnCliсk, в редакторе кодов в функцию N3Click добавьте команду

Form2->ShowModal();

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

#include "имя_модуля_справки.h".

Здесь имя_модуля_справки – это имя, с которым вы сохранили модуль на диске.

Метод ShowModal() вызывает окно справки, причем пока оно не будет закрыто, перейти в главное окно приложения не удастся (модальное состояние окна).

Выделите кнопку "Вычислить" на панели инструментов и в инспекторе объектов для обработчика OnClick выберите процедуру Button1Click; для кнопки Выход – процедуру Button2Click. Для кнопки "Справка" создайте процедуру, обрабатывающую щелчок аналогично тому, как вы сделали это для пункта меню "Справка".

Осталось определить работу строки состояния StatusBar1. Выделите ее на форме, перейдите на страницу Properties инспектора объектов, найдите свойство SimplePanel и присвойте ему значение True.

Щелкните дважды по форме и в теле функции FormCreate поместите следующий код:

void __fastcall TForm1::FormCreate(TObject *Sender)

{

StatusBar1->SimpleText="Введите коэффициенты уравнения";

}

Сохраните проект и проверьте работу приложения.


 







Дата добавления: 2015-09-04; просмотров: 403. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Принципы резекции желудка по типу Бильрот 1, Бильрот 2; операция Гофмейстера-Финстерера. Гастрэктомия Резекция желудка – удаление части желудка: а) дистальная – удаляют 2/3 желудка б) проксимальная – удаляют 95% желудка. Показания...

Ваготомия. Дренирующие операции Ваготомия – денервация зон желудка, секретирующих соляную кислоту, путем пересечения блуждающих нервов или их ветвей...

Билиодигестивные анастомозы Показания для наложения билиодигестивных анастомозов: 1. нарушения проходимости терминального отдела холедоха при доброкачественной патологии (стенозы и стриктуры холедоха) 2. опухоли большого дуоденального сосочка...

Признаки классификации безопасности Можно выделить следующие признаки классификации безопасности. 1. По признаку масштабности принято различать следующие относительно самостоятельные геополитические уровни и виды безопасности. 1.1. Международная безопасность (глобальная и...

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Studopedia.info - Студопедия - 2014-2024 год . (0.009 сек.) русская версия | украинская версия