Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5.рамка_мал_основное.docx
Скачиваний:
5
Добавлен:
01.03.2025
Размер:
90 Кб
Скачать
☆
  1. Разработка программы

3.1. Обоснование выбранных программных средств

Исходя из поставленных целей, мною для реализации данной системы был выбран набор программ утилит и библиотек предоставляемой фирмой Borland [3]. В процессе выполнения работы мною были использованы графический редактор оконных форм, средства для кодо-генерации и рефакторинга. Из средств программных библиотек были использованы визуальные компоненты: формы/окна, оконное меню, поля ввода, выпадающий список, кнопки выпадающего списка для выбора цвета.

3.2. Обработка сообщений

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

3.3. Определение функций и классов

3.3.1. Описание функции WinMain

Основная функция WinMain отвечает за запуск и инициализацию всех компонентов.

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->Initialize();

Application->CreateForm(__classid(TMainForm), &MainForm);

Application->CreateForm(__classid(TSelectColorForm), &SelectColorForm);

Application->Run();

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

catch (...)

{

try

{

throw Exception("");

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

}

return 0;

}

3.3.2. Описание функции proccess

Функция TMainForm::proccess() – является методом класса основного окна и реализует главную задачу приложения, а именно перевод величин. Также метод производит проверку на корректность введённой информации.

__fastcall TMainForm::proccess() {

double res = 0, bres = 0;

double src;

try {

src = Src->Text.ToDouble();

} catch (EConvertError &e) {

src = 0.0;

Dst->Color = clRed;

Dst->Text = "";

Back->Color = clRed;

Back->Text = "";

return 0;

}

Dst->Color = clWindow;

Back->Color = clWindow;

int i = Variants->ItemIndex;

if (i > -1 && i < 16) {

if (actions[i] == '+') {

res = src + coeficients[i];

bres = src - coeficients[i];

}

if (actions[i] == '*') {

res = src * coeficients[i];

bres = src / coeficients[i];

}

}

Dst->Text = FloatToStrF(res, ffFixed, 8, 4);

Back->Text = FloatToStrF(bres, ffFixed, 8, 4);

}