Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Визуальные компоненты




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


Теперь давайте изучим более подробно основные компоненты среды разработки Borland C++ Builder 6, которые применяются при разработке программ.


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

 

Таблица 18.1. Перечень вкладок визуальных компонентов и описание их состава

Вкладка Состав
Standard Стандартная. Содержит наиболее часто используемые компоненты
Additional Дополнительная. Содержит дополнения компонентов к стандартной вкладке
Win32 Содержит 32-битные компоненты в стиле Windows
System Системная. Содержит такие компоненты, как таймер, окно для рисования, проигрыватель и др.
Data Access Доступ к данным. Содержит компоненты для создания программ, работающих с базами данных и обеспечивающих доступ к этим базам
Data Controls Управление данными. Компоненты отображения и редактирования данных
db Express Связь с данными с использованием языка баз данных SQL
DataSnap Компоненты для связи с сервером приложений при построении многопоточных приложений, работающих с данными
BDE Доступ к данным через Borland Database Engine (BDE)
ADO Связь с базами данных через Active Data Objects (ADO) — множество компонентов ActiveX, использующих для доступа к информации баз данных Microsoft OLE DB
InterBase Прямая связь с Interbase, минуя Borland Database Engine и Active Data Objects
WebServices Компоненты клиентских интернет-приложений, использующие доступ к службам Web с помощью SOAP
InternetExpress Построение приложений Internet Express — одновременно приложений Web-сервера и клиента баз данных с параллельными потоками
Internet Компоненты для создания Web-серверов
WebSnap Компоненты для создания Web-серверов, содержащих сложные страницы, управляемые данными
FastNet Различные протоколы доступа к Интернету
Decision Cube Компоненты для многомерного анализа данных
QReport Компоненты для подготовки отчетов (диаграмм, графиков и т. п.)
Dialogs Диалоги. Содержит системные диалоги типа "Открыть файл", "Закрыть файл" и т. п.
Win 3.1 Windows 3,1, Содержит компоненты в стиле Windows 3.1
Samples Образцы. Содержит компоненты построения графика, календаря, выбора цвета и др.
ActiveX Содержит некоторые компоненты ActiveX
СОМ+ Содержит компонент, дающий доступ к каталогу СОМ+, содержащему данные по конфигурации СОМ+
Servers Содержит компоненты связи с серверами СОМ
IndyClients Содержит компоненты клиентских приложений Internet Direct (Indy), дающих доступ к различным протоколам Интернета из приложений Delphi, C++ Builder и Kylix
IndyServers Содержит компоненты серверных приложений internet Direct
IndyMisk Различные вспомогательные компоненты приложений Internet Direct
Office97 Оболочки VCL для распространенных серверов СОМ офисных приложений Microsoft

 

 

Пусть вас не пугают неизвестные аббревиатуры типа BDE, ADO, COM и др., встречающиеся в таблице. С этими понятиями вы разберетесь позже, когда начнете их использовать в собственных программах. Здесь они приведены лишь для общего обзора.

Программа Square

Итак, мы рассмотрели все необходимые инструменты, компоненты и способы программирования в среде разработки программ Borland C++ Builder 6. Теперь читатели вооружены достаточными знаниями, для того чтобы начать составление и разработку собственных программ. Но для закрепления изученного материала на практике, в этой главе вниманию читателей предлагается разработать несколько программ, которые помогут обрести уверенность в своих силах начинающим программистам.
Предлагаемая программа предназначена для вычисления корней квадратного уравнения и может быть особенно полезна учащимся школ. На ее примере можно будет создать множество других программ, облегчающих вычисления различных уравнений и функций.
Сформируем интерфейс программы. Создайте новое приложение и поместите на его форму пять компонентовLabel, три компонента Edit, две кнопки Button и компонент MainMenu.
Задайте для формы Form1 свойство Name с именем FormMain, а свойство Caption с названием Square. Замените свойства Name компонентов Label1-Label5 на Labelformul, Labela, Labelb, Labelc и Labelx1x2, соответственно, и задайте для них следующие свойства Caption: Квадратное уравнение а*х^2+b*х+с=0, а=, b=, с= и x1=?, x2=?.
Замените свойства Name компонентов Button1 и Button2 на ButtonExe и ButtonOut, соответственно, и задайте для них следующие свойства Caption: Решить и Выход.

Измените значение свойства Name компонентов Edit1—Edit3 на Edita, Editb и Editc, соответственно, а свойстваText этих компонентов заполните значениями 1, 1 и 0.
Щелкните дважды левой кнопкой мыши по компоненту MainMenu1 и в открывшемся окне FormMain задайте свойство Caption для первого пункта меню в виде названия О программе.

Закройте окно FormMain и расположите компоненты на форме в соответствии с рис. 24.1.

 

Рис. 24.1. Расположение компонентов на основной форме программы


Сохраните проект в файле с названием Square.bpr а модуль программы — в файле Usquare.cpp.
Интерфейс программы сформирован. Теперь можно приступить к редактированию программного кода. Щелкните дважды левой кнопкой мыши по кнопке Решить и введите в обработчик события OnClick строки программы из листинга 24.1.

 

Листинг 24.1. Строки обработчика события OnCIick программы Square

double a,b,c,x1,x2;
try
{
a=Edita->Text.ToDouble();
b=Editb->Text.ToDouble();
c=Editc->Text.ToDouble();
}
catch (EConvertError&)
{
ShowMessage("Неправильно введен коэффициент\rПовторить ввод");
Labelx1x2->Caption="x1=? x2=?"; // Убрать предыдущий результат
return;
}
int d=b*b+4*a*c;
if (a==0){
if (b==0){
Labelx1x2->Caption="Неправильно заданы коэффициенты a и b";
return;
};
x1=-c/b;
Labelx1x2->Caption="Корень один\rx="+String(x1)+";";
return;
};
if (d<0){
Labelx1x2->Caption="Детерминат меньше нуля. Нет корней!";
return;
};
if (d==0){
x1=(-b/(2*a));
Labelx1x2->Caption="Детерминат равен нулю. Корень один.\rx="+String(x1)+";";
return;
};
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
Labelx1x2->Caption="x1="+String(x1)+"; x2="+String(x2)+";";

 

Эти программные строки и весь проект программы под названием Square можно скачать по ссылке внизу статьи. В них описываются переменные, которые участвуют в вычислениях корней квадратного уравнения, и включены операторы и функции для вычисления корней. Поскольку при вычислении могут встретиться запрещенные ситуации, наподобие деления на ноль и пр., в программу включены операторы проверки подобных ситуаций с выводом соответствующих сообщений пользователю программы. В программе эти сообщения присутствуют в виде текста, заключенного в кавычки. Если этого не делать, то программа будет выдавать системные предупреждения на английском языке или "зависать". Хорошим стилем программирования считается предупреждение всех ошибочных ситуаций и недопущение тупикового выполнения программы приводящего к ее "зависанию". В противном случае программа будет раздражать пользователя, и он от нее откажется.
Так как в тексте программы присутствуют непростые арифметические операции, например вычисление квадратного корня sqrt(), необходимо подключить к программе математическую библиотеку. Для этого в модуле программы после строки #include "Usquare.h" впишите строку подключения библиотеки с математическими функциями:
#include <math.h>.

 

Теперь сформируйте обработчик события OnClick для кнопки Выход и вставьте в него программную строку для закрытия приложения:
Close ();


Приложение уже можно запустить, и оно будет работать. Но в нем не будет работать главное меню. Создадим поддержку для него.


Сформируйте обработчик события OnClick для первого пункта меню N1 компонента MainMenul путем двойного щелчка левой кнопкой мыши по самому компоненту и вставьте в него строку для модального вызова формы FormAbout с описанием программы:
FormAbout->ShowModal ();


Модальный вызов не позволяет программе переключиться на другое окно до тех пор, пока текущее окно не будет закрыто. В отличие от него немодальное окно вызывается функцией show() и не налагает такого условия.


Поскольку формы с описанием программы нет, ее необходимо создать. Для этого выполните из главного меню команду: File | New | Form. Для вновь созданной формы задайте свойство Name с именем FormAbout и свойство Caption с названием О программе.

 

Теперь поместите на эту форму четыре компонента Label, один компонент Image и одну кнопку BitBtn из палитры Additional, а также компонент MonthCalendar из палитры Win32.


Для компонентов Label1—Label4 задайте свойство Caption с названиями: Программа решения квадратных уравнений, Версия 1.0, Послать E-mail и Поиск в Интернете.


Для компонентов Label3 и Label4 установите шрифт через свойство Font как синий, подчеркнутый, полужирный курсив. Свойство Cursor для этих компонентов поменяйте на crHandPoint. Это делается для того, чтобы выделить надписи данных компонентов и изменить при наведении на них вид курсора мыши.


Создайте обработчик события OnClick для компонента Label3 и вставьте в него программную строку вызова почтовой программы:
ShellExecute(Handle, "open", "mailto:mail@narod.ru?x-priority=normal&subject=ТЕМА_ПИСЬМА", NULL, NULL, SW_SHOWNORMAL);


Здесь в программной строке можно изменить адрес получателя письма mail@narod.ru и заполнить тему письма собственным текстом.

 

Далее создайте обработчик события OnClick для компонента Label4 и вставьте в него программную строку вызова обозревателя и вхождения с его помощью в Интернет:
ShellExecute(Handle, "open", "http://rh.md", 0, 0, SW_SHOW);


Естественно, что адрес страницы http://rh.md можно заменить на любой другой подходящий и существующий адрес.

 

Для кнопки BitBtn1 установите свойство Kind, как bkOk. Создайте обработчик события OnClick для этой кнопки и вставьте в него программную строку выхода:
Close ();


Наконец, скопируйте в каталог с программой предварительно созданный файл с рисунком или фотографией в формате BMP или JPG и загрузите его через свойство Picture компонента Image. Для того чтобы рисунок совпадал с размерами компонента Image, установите его свойство AutoSize в значение true. Расположите все компоненты на форме в соответствии с рис. 24.2 и сохраните модуль программы в файле с именем about.cpp.

 

Рис. 24.2. Расположение компонентов на дополнительной форме программы


Поскольку мы добавили в наше приложение еще одну форму, необходимо включить в основной модульUsquare.cpp имя файла описания новой формы с названием about.h. Для этого впишите в модулеUsquare.cpp после строки
#include <math.h> программную строку:
#include "about.h".


Теперь остается лишь заменить значок-иконку программы с помощью команды главного меню Project | Options | Application на созданный во встроенном редакторе Image Edit файл иконки с расширением ico и откомпилировать программу.
Программа готова. Запустите ее на выполнение и проверьте в работе.
В этой программе мы использовали новый компонент MonthCalendar, который позволяет без труда внедрить в программу красочный календарь с богатыми функциями. Кроме того, мы научились запускать из программы почтовую службу отправки электронных писем и входить в Интернет из работающей программы. Подобные приемы можно применять во вновь создаваемых программах.

 

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных