Главная » Просмотр файлов » Лабораторные работы МИРЭА 2014

Лабораторные работы МИРЭА 2014 (1017113), страница 18

Файл №1017113 Лабораторные работы МИРЭА 2014 (Лабораторные работы МИРЭА 2014) 18 страницаЛабораторные работы МИРЭА 2014 (1017113) страница 182017-07-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 18)

Листинг 4. Функции обработки событий на компонентах формы программы "Сила тока"

// щелчок на кнопке Вычислить

void__fastcall TForm1::ButtonlClick(TObject *Sender)

{

float u; // напряжение

float r; // сопротивление

float i; // ток

// проверим, введены ли данные в поля Напряжение и Сопротивление

if (((Edit1-XText).Length()==0)||((Edit2->Text).Length()==0))

{

MessageDlg("Haдo ввести напряжение и сопротивление",

mtlnformation, TMsgDlgButtons()<<mbOK,0);

if ((Edit1->Text).Length()==0)

Edit1->SetFocus(); // курсор в поле Напряжение else

Edit2->SetFocus();// курсор в поле Сопротивление

return;

};

// получить данные из полей ввода

u = StrToFloat(Edit1->Text);

r = StrToFloat(Edit2->Text);

// вычислить силу тока

try {

i = u/r;

}

catch (EZeroDivide &e)

{

ShowMessage("Величина сопротивления не должна быть равна нулю");

Edit2->SetFocus(); //курсор в поле Сопротивление

return;

}

// вывести результат в поле Label4

Label4->Caption = "Ток : " +

FloatToStrF(i,ffGeneral,7,2) + " А";

}

// нажатие клавиши в поле Напряжение

void __fastcall TForm1::EditlKeyPress(TObject *Sender, char SKey)

{

/* коды запрещенных клавиш заменим нулем, в результате символы этих клавиш в поле редактирования не появятся

Key — код нажатой клавиши

проверим, является ли символ допустимым */

if ((Key>='0')&&(Key<='9'}) // цифра

return;

/* Глобальная переменная DecimalSeparator

содержит символ, используемый в качестве разделителя

при записи дробных чисел */

if ( Key == DecimalSeparator)

{

if ((Edit1->Text).Pos(DecimalSeparator)!=0)

Key =0; // разделитель уже введен

return;

}

if (Key == VK_BACK) // клавиша <Backspace>

return;

if ( Key == VK_RETURN) // клавиша <Enter>

{

Edit2->SetFocus();

return;

};

// остальные клавиши запрещены

Key =0; // не отображать символ

}

// нажатие клавиши в поле Сопротивление

void__fastcall TForm1::Edit2KeyDown(TObject *Sender, WORD &Key, TShiftState Shift)

{

if ((Key>='0')&&(Key<='9')) // цифра

return;

if ( Key == DecimalSeparator)

{

if ( (Edit2->Text).Pos(DecimalSeparator) != 0)

Key =0; // разделитель уже введен

return;

}

if (Key == VK_BACK) // клавиша <Backspace>

return; <

if ( Key == VK_RETORN) // клавиша <Enter>

(

Button1->SetFocus();//переход к кнопке Вычислить

// повторное нажатие клавиши <Enter>

// активизирует процесс вычисления тока

return;

};

// остальные клавиши запрещены

Key = 0; //не отображать символ

}

// щелчок на кнопке Завершить

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Form1->Close(); // закрыть форму приложения

}

Настройка приложения

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

Название программы

Название программы отображается во время ее работы в панели задач Windows, а также в заголовках окон сообщений, выводимых функцией ShowMessage. Название программы надо ввести в поле Title (рис. 44) вкладки Application диалогового окна Project Options, которое появляется в результате выбора в меню Project команды Options.

Рис. 38. Название программы надо ввести в поле Title

Значок приложения

Чтобы назначить приложению значок, отличный от стандартного, нужно в меню Project выбрать команду Options и в открывшемся окне на вкладке Application щелкнуть на кнопке Load Icon. В результате этих действий откроется стандартное окно, используя которое можно просмотреть каталоги и найти подходящий значок (значки хранятся в файлах с расширением ico).

В состав C++ Builder входит утилита Image Editor (Редактор изображений), при помощи которой программист может создать для своего приложения уникальный значок. Запустить Image Editor можно из C++ Builder, выбрав в меню Tools команду Image Editor, или из Windows — командой Пуск|Программы|BorlandC++ Builder|Image Editor.

Чтобы начать работу по созданию нового значка, нужно в меню File выбрать команду New | Icon File (рис. 43).

Рис. 43. Начало работы над новым значком

После выбора типа создаваемого файла открывается окно Icon Properties (рис. 44), в котором необходимо выбрать характеристики создаваемого значка: Size (Размер) — 32x32 (стандартный размер значков Windows) и Colors (Палитра) — 16 цветов. В результате нажатия кнопки ОК открывается окно Iconl.ico (рис. 45), в котором можно, используя стандартные инструменты и палитру, нарисовать нужный значок.



Рис. 44. Стандартные характеристики значка

Рис. 45. Начало работы над новым значком

Процесс рисования в Image Editor практически ничем не отличается от процесса создания картинки в обычном графическом редакторе, например в Microsoft Paint. Однако есть одна тонкость. Первоначально поле изображения закрашено "прозрачным" цветом. Если значок нарисовать на этом фоне, то при отображении значка части поля изображения, закрашенные "прозрачным" цветом, примут цвет фона, на котором будет находиться значок. В процессе создания картинки можно удалить (стереть) ошибочно нарисованные элементы, закрасив их прозрачным цветом, которому на палитре соответствует левый квадрат в нижнем ряду (рис. 46). Кроме "прозрачного" цвета в палитре есть "инверсный" цвет. Нарисованные этим цветом части рисунка при выводе на экран будут окрашены инверсным относительно цвета фона цветом.

Рис. 46. Палитра

Чтобы сохранить нарисованный значок, надо в меню File выбрать команду Save, в открывшемся диалоговом окне раскрыть папку проекта (приложения, для которого создан значок) и задать имя файла значка, которое обычно совпадает с именем проекта (выполняемого файла приложения).

Перенос приложения на другой компьютер

Небольшую программу, которая использует только стандартные компоненты и представляет собой один-единственный ехе-файл, можно перенести на другой компьютер вручную, например, при помощи дискеты. Как правило, при запуске таких программ на другом компьютере проблем не возникает. Вместе с тем, необходимо обратить внимание на следующее. Программа, созданная в C++ Builder, использует DLL версию библиотеки времени выполнения (RTL — Runtime Library) и специальные динамические библиотеки — пакеты (например, в пакете VCL60 находятся наиболее часто используемые компоненты и системные функции). Чтобы программа могла работать на другом компьютере, помимо ехе-файла на этот компьютер надо перенести RTL-библиотеку и используемые программой пакеты или включить библиотеку и пакеты в ехе-файл (что существенно увеличит размер ехе-файла). Чтобы включить в выполняемый файл RTL-библиотеку и используемые программой пакеты, надо в меню Project выбрать команду Options и во вкладках Linker (рис. 47) и Packages (рис. 48) сбросить соответственно флажки Use dynamic RTL и Build with runtime packages. После этого нужно выполнить перекомпоновку программы.

Сложные программы, например те, которые используют компоненты доступа к базам данных, перенести на другой компьютер вручную проблематично. Для таких программ лучше создать установочную дискету (CD-ROM). Сделать это можно, например, при помощи пакета InstallShield Express, который входит в комплект поставки C++ Builder.

Рис. 47. Чтобы включить в выполняемый файл RTL-библиотеку, сбросьте флажок Use dynamic RTL

Рис. 48. Чтобы включить в выполняемый файл используемые программой пакеты (специальные DLL-библиотеки), сбросьте флажок Build with runtime packages

Структура простого проекта

Проект представляет собой набор программных единиц — модулей. Один из модулей, называемый главным, содержит инструкции, с которых начинается выполнение программы. Чтобы увидеть главный модуль, нужно в меню Project выбрать команду View Source. В качестве примера в листинге 2.5 приведен текст главного модуля программы "Сила тока".

Листинг 5. Главный модуль (Amper.cpp)

#include <vcl.h>

#pragma hdrstop

USEFORM("Amper_l.cpp", Forml);

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->Initialize();

Application->Title = "Сила тока";

Application->CreateForm(__classid(TForml), SForml);

Application->Run(); }

catch (Exception Sexception)

{

Application->ShowException(Sexception);

}

catch (...)

{

try

{

throw Exception("");

}

catch (Exception Sexception)

{

Application->ShowException(Sexception);

}

}

return 0;

}

Начинается главный модуль директивами компилятору (точнее, препроцессору). Директива #include <vci.h> информирует компилятор, что перед тем как приступить непосредственно к компиляции, в текст главного модуля нужно включить заголовочный файл библиотеки визуальных компонентов — vcl.h. Строка USEFORM("Amper_i.cpp", Form1) указывает, что в проект нужно включить файл модуля формы Amper_l.cpp, который содержит функции обработки событий для формы Form1. Далее следует описание главной функции программы — winMain. Функция winMain инициализирует внутренние структуры программы, создает форму Formi и запускает программу, что приводит к появлению на экране стартовой формы. Так как в проекте "Сила тока" только одна форма, то на экране именно она и появляется. Инструкция обработки исключений catch выполняется, если в программе возникает ошибка. Таким образом, главный модуль обеспечивает вывод стартовой формы программы, дальнейшее поведение которой определяют функции обработки событий стартовой формы.

Помимо главного модуля в состав проекта входят модули формы. Для каждой формы C++ Builder создает отдельный модуль, который состоит из двух файлов: заголовочного файла и файла кода (содержимое этих файлов отражается в окне редактора кода). Заголовочный файл содержит описание формы (листинг 2.6), файл кода (модуль формы) — описание (текст) функций, в том числе и обработки событий (листинг 2.7).

Листинг 6. Заголовочный файл модуля формы (Amper_1.h)

#ifndef Amper_1H

#define Amper_1H

#include <Classes.hpp>

#include «Controls.hpp>

Характеристики

Тип файла
Документ
Размер
3,06 Mb
Тип материала
Высшее учебное заведение

Список файлов лабораторной работы

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее