Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab1_s2.doc
Скачиваний:
6
Добавлен:
01.09.2019
Размер:
854.53 Кб
Скачать

Свойства компонентов

Свойства являются атрибутами компонента, определяющими его внешний вид и поведение. Многие свойства компонента в колонке свойств имеют значение, устанавливаемое по умолчанию (например, высота кнопок). Свойства компонента отображаются на странице свойств (Properties). Инспектор объектов используется для установки свойств во время проектирования. Список свойств располагается на странице свойств инспектора объектов. Можно определить свойства во время проектирования или написать код для видоизменения свойств компонента во время выполнения приложения.

При определении свойств компонента во время проектирования нужно выбрать компонент на форме, открыть страницу свойств в инспекторе объектов, выбрать определяемое свойство и изменить его с помощью редактора свойств (это может быть простое поле для ввода текста или числа, выпадающий список, раскрывающийся список, диалоговая панель и т.д.).

Поле Name, доступное для компонента через Инспектора объектов, определяет имя указателя на данный компонент, через который можно программно получить доступ к свойствам и методам этого компонента. Это имя присваивается автоматически при создании компонента, но при желании может быть изменено.

События

Страница событий (Events) инспектора объектов показывает список событий, распознаваемых компонентом (программирование для операционных систем с графическим пользовательским интерфейсом предполагает описание реакции приложения на те или иные события, а сама операционная система занимается постоянным опросом компьютера с целью выявления наступления какого-либо события). Каждый компонент имеет свой собственный набор обработчиков событий. В C++ Builder следует писать функции, называемые обработчиками событий, и связывать события с этими функциями. Создавая обработчик того или и ого события, вы поручаете программе выполнить написанную функцию, если это событие произойдет.

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

Рис.2. Прототип обработчика событий.

Методы

Метод является функцией, которая связана с компонентом, и которая объявляется как часть объекта. Создавая обработчики событий, можно вызывать методы, используя следующую нотацию: ->, например:

Edit1->Show();

Информацию о том, какие методы имеет тот или иной компонент, можно получить из встроенной системы помощи C++ Builder.

Панель компонентов Standard (Стандартная)

Большинство компонентов на этой закладке являются аналогами экранных элементов самой системы Windows. Меню, кнопки (Button), поля ввода данных (Edit), метки (Label), полосы прокрутки являются элементами интерфейса для многих приложений (Рис.3).

Рис.3. Панель Standard

MainMenu позволяет поместить главное меню в программу. При помещении MainMenu на форму это выглядит, как просто иконка. Иконки данного типа называют "невидимым компонентом", поскольку они невидимы во время выполнения программы. Создание меню включает три шага: помещение MainMenu на форму, вызов Дизайнера Меню через свойство Items в Инспекторе объектов, определение пунктов меню в Дизайнере Меню.

PopupMenu позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши на объекте, к которому привязано данное меню. У всех видимых объектов имеется свойство PopupMenu, где и указывается нужное меню. Создается PopupMenu аналогично главному меню.

Метка (Label) служит для отображения текста на экране (Рис.3). Она предназначена для размещения сообщений, которые будет формировать программа.

Рис.4. Метки

Используя свойство Color можно менять заливку поля Label. Можно изменить шрифт и цвет метки, если дважды щелкнуть на свойстве Font в Инспекторе Объектов. Если щелкнуть на опции Caption, то можно заменить текст метки Label1.

Высоту поля метки изменяется с помощью свойства Height, а ширина – с помощью свойства Width. Свойство Top определяет смещение поля метки по вертикали. Например, значение свойства Top, равное 0 помещает рамку по верхней кромке окна Формы. Свойство Left определяет смещение от левого края поля Форма.

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

Edit – стандартный управляющий элемент для ввода. Он позволяет пользователю вводить текст во время выполнения программы.

Button позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. Основным для кнопки Button является событие OnClick, возникающее при ее нажатии.

CheckBox отображает строку текста с маленьким окошком рядом. В окошке можно поставить отметку, которая означает, что что-то выбрано.

  • RadioButton позволяет выбрать только одну опцию из нескольких.

ListBox используется для показа прокручиваемого списка.

ComboBox во многом напоминает ListBox, за исключением того, что позволяет водить информацию в маленьком поле ввода сверху ListBox.

Scrollbar полоса прокрутки, появляется автоматически в элементах интерфейса при необходимости прокрутки текста для просмотра.

GroupBox используется для визуальных целей и для указания Windows, каков порядок перемещения по компонентам на форме (при нажатии клавиши TAB).

  • RadioGroup используется для группировки объектов TRadioButton.

Panel – управляющий элемент, который используется в декоративных целях. Panel можно использовать для компоновки формы.

Пример 1. Разработать приложение для выполнения четырех арифметических действий над переменными a и b.

  1. Помещаем на окно формы 2 панели Panel1 и Panel2 (рис. 5а).

а) б)

Рис.5. Размещение панелей на Форме

  1. В поле Caption убираем Panel1, а затем Panel2. Результат показан на Рис.5б.

  2. На первой панели помещаем две метки (Рис.6а). В инспекторе объектов в поле Caption меняем названия Label1 и Label2 на Число 1 и Число 2 соответственно (Рис.6б).

а) б)

Рис.6. Размещение меток на Форме

4. Под метками помещаем два поля ввода данных Edit1 и Edit2 (Рис.7а). В инспекторе объектов в поле Text удаляем названия Edit1 и Edit2 (Рис.7б).

а) б)

Рис.7. Размещение полей ввода данных на Форме

5. На второй панели размещаем три кнопки Button (Рис.8а). В инспекторе объектов в поле Caption меняем названия Button1, Button2 и Button3 соответственно на "Вычислить", "Очистить" и "Закрыть" (Рис.8б).

а) б)

Рис. 8. Размещение кнопок на форме

  1. Для вывода результатов помещаем на первую панель компонент Memo . Над компонентом Memo размещаем метку Label8 (Рис.9а).

а) б) в)

Рис. 9. Размещение на форме компонента Memo

Название метки Label8 заменим на "Результаты вычислений" (Рис.9б). Memo1 можно удалить из поля вывода результатов, для чего в Инспекторе объектов следует выбрать параметр Lines и раскрыть список TStrings. На форме появится диалоговое окно Редактор строк (Рис.9в), в котором необходимо стереть Memo1, а затем щелкнуть на кнопке ОК.

7. Создаем обработчик события OnClick двойным щелчком на кнопке "Вычислить". После двойного щелчка на кнопке открывается окон Редактора кода (Рис.10).

Рис.10. Окно Редактора кода

В этом окне после заголовка функции между фигурными скобками необходимо вставить операторы, которые должны исполняться при возникновении данного события.

Ниже показан фрагмент программы для обработчика события OnClick.

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

Здесь также используются функции FloatToStr() для преобразования вещественного типа в тип AnsiString и StrToFloat() для преобразования типа AnsiString в вещественный тип.

void __fastcall TForm1::Button1Click(TObject *Sender)

{

float a,b,c,d,e,f; /* Задание вещественных переменных */

AnsiString s1,s2,s3,s4; /* Задание текстовых переменных */

a = StrToFloat(Edit1->Text); /* Оператор ввода переменной a */

b = StrToFloat(Edit2->Text); /* Оператор ввода переменной b */

c = a+b;

s1 = FloatToStr(c); /* Преобразование переменной с в текстовую

переменную s1 */

d = a-b; s2 = FloatToStr(d);

e = a*b; s3 = FloatToStr(e);

f = a/b; s4 = FloatToStr(d);

Memo1->Lines->Add("c=" + s1); /* Оператор вывода s1 в поле

многострочного редактора Memo1 */

Memo1->Lines->Add("d = " + s2);

Memo1->Lines->Add("e = " + s3);

Memo1->Lines->Add("f = " + s4);

}

  1. Обработчик события для кнопки "Очистить":

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Edit1->Text = ""; /* Очистить поле ввода Edit1 */

Edit2->Text = ""; /* Очистить поле ввода Edit2 */

Edit1->SetFocus(); /* Установить курсор ввода в поле Edit1 */

Memo1->Clear(); /* Очистить поле многострочного редактора Memo1 */

}

9. Обработчик события для кнопки "Закрыть":

void __fastcall TForm1::Button3Click(TObject *Sender)

{

/* Закрыть форму Form1, а вместе с ней и программу */

Form1->Close();

}

Варианты заданий

  1. При заданных значениях a, b, c, х вычислить

Y=(a*cos(b*x) + c)/ (a*c - b).

  1. Составить программу проверяющую возможность построения треугольника из отрезков с длинами x, y, z.

  2. Составить программу для решения квадратного уравнения a*x2+b*x+c=0.

  3. Составить программу поиска суммы минимального и максимального из четырех введенных чисел.

  4. Для чисел Х и У определить, являются ли они корнями уравнения А*p4+D*p2+C=0.

  5. Если среди четырех чисел А, В, С,D имеется хотя бы одно четное, вычислить максимальное, иначе – минимальное.

  6. Ввести положительное А>=1. Найти наибольшее из выражений вида 1\А и sin(A), cos(A).

  7. Ввести четыре числа. Меньшее заменить полусуммой, а большее – удвоенным произведением весх чисел.

  8. Ввести три числа А, В, С. Удвоить каждое из них , если А>=В>=С, иначе поменять значения А и В.

  9. Определить, является ли точка с координатами X,Y точкой пересечения диагоналей квадрата со стороной R, одна вершина которого расположена в начале координат.

  10. Определить лежит ли точка с координатами (X,Y) вне круга радиуса R с центром в точке (А, В) или внутри него.

  11. Определить корни системы уравнений a*x + b*y = c; n*x + m*y = d.

  12. Вычислить y= sin(X) ,если X<0 и y= tg(X) , если X>=0. Большее значение вывести на печать со знаком плюс, а меньшее со знаком минус.

  13. Вычислить       | 1+sqrt(cos(x))|,   x< – 0,5, y= x +1 ,  – 0,5<=x<=1,       1 – x*x,   x>1.

  14. Вычислить       | 1+sqr(sin(x))|,   x < –1, y= x +1 ,  – 1<=x<=1,       1– x*x + x,   x>1.

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

  16. По длинам двух сторон треугольника и углу между ними в радианах вычислить длину третьей стороны и площадь треугольника.

  17. Определить число, полученное записыванием в обратном порядке цифр заданного шестизначного числа.

  18. Дано число X. Напечатать в порядке возрастания числа ch x, 1+ |x| и (1+х2)х.

  19. Даны произвольные числа a, b, c. Если нельзя построить треугольник с такими длинами сторон, то напечатать 0, иначе – напечатать 3, 2, 1 в зависимости от того, равносторонний это треугольник, равнобедренный или с разными сторонами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]