Студопедия — Изучение управляющего элемента ComboBox
Студопедия Главная Случайная страница Обратная связь

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

Изучение управляющего элемента ComboBox






Изучать управляющий элемент ComboBox проще, написав программу, например, для перевода единиц измерения длины.

Рекомендуемая компоновка формы программы представлена на рисунке 14.

Рисунок 14 – Рекомендуемая компоновка формы

 

Для создания формы использованы компоненты: Label – для подписей;

Edit – для ввода и вывода; ComboBox – для выбора единиц измерения исходной и результирующей величины; Button – для инициирования вычислений.

Для создания такой формы необходимо выполнить следующие действия.

1. Запустить C++ Builder. При запуске автоматически создается новый проект. Для создания нового проекта, в случае если он не создался автоматически или вы его закрыли, выполнить команду меню File / New /Application.

2. Сохранить проект в свою рабочую папку, выполнив команду меню File / Save Project As. Будет сохранено несколько файлов проекта.

3. На панели компонентов выбрать вкладку Standard, выбрать компонент Label и щелкнуть левой кнопкой мыши по форме. На этой же вкладке выбрать компонент Edi t , Button и ComboBox . Расположить три объекта Label, два объекта Edit, один объект Button и два объекта ComboBox на форму как показано на рисунке 14.

4. Изменить подпись формы. Для этого выбрать форму (щелкнуть по заголовку формы) и в окне свойств объекта во вкладке Properties изменить значение свойства Caption (рис. 15). Вместо подписи Form1 ввести «Конвертер».

 

Рисунок 15 – Свойство формы Caption (подпись)

 

5. Изменить подписи объектов Label1 - Label3 в соответствии с рисунком 12. Для этого выбрать каждый объект Label и в окне свойств объекта во вкладке Properties изменить значение свойства Caption.

6. Убрать текст из объектов Edit1 и Edit2. Для этого выбрать каждый объект Edit и в окне свойств объекта во вкладке Properties очистить значение свойства Text.

7. Поскольку объект Edit2 будет использоваться для вывода результата (то есть заполняться он будет по нажатию на кнопку, а не вручную), нужно изменить его свойство ReadOnly на значение true (то есть сделать объект Edit2 только для чтения).

8. Настроить объекты ComboBox1 и ComboBox2. Эти объекты представляют собой выпадающие списки и будут использоваться для выбора единиц измерения длины. Для заполнения списков необходимо в окне свойств объекта во вкладке Properties найти свойство Items и щелкнуть левой кнопкой мыши на кнопке с тремя точками (рисунок 16).

Рисунок 16 – Список свойств объекта ComboBox1

 

В появившемся окне (рис. 17) перечислить единицы измерения.

 

Рисунок 17 – Окно редактора списка

 

Для программного выбора варианта из списка в объекте ComboBox используется свойство ItemIndex. Это же свойство позволяет отслеживать выбранный вариант. Так для выбора первого варианта (единица измерения мм) нужно задать значение свойства ItemIndex = 0 (рис. 16).

Для задания стиля объекта используется свойство Style. По умолчанию значением свойства Style является csDropDown. При таком стиле пользователь может не только выбирать значения из списка, но и осуществлять ввод в окно объекта ComboBox. Поскольку программа будет работать только с заранее заданным набором единиц измерения необходимо запретить редактирование полей ComboBox1 и ComboBox2. Для этого нужно поменять значение свойства Style на csDropDownList. Объект ComboBox со значением свойства Style равным csDropDownList не допускает редактирования и, значит, пользователь просто не сможет указать неправильные данные.

9. Изменить подпись кнопки Button1. Для этого выбрать объект Button1 и в окне свойств объекта во вкладке Properties изменить значение свойства Caption на «Расчет».

10. Объект Edit1 предназначен для ввода числовых данных, предназначенных для перевода в другие единицы измерения. Для того чтобы пользователь не смог ввести буквы или другие символы, которые могу вызвать ошибку при расчетах, необходимо сделать обработчик нажатий клавиш на клавиатуре. Для этого необходимо выбрать объект Edit1 и в окне свойств объекта открыть вкладку Events («События») . В появившемся списке найти событие OnKeyPress («по нажатию клавиши») и сделать двойной щелчок левой кнопкой мыши по пустому полю. В появившейся заготовке функции написать код обработки нажатия клавиш:

 

void __fastcall TForm1:: Edit1KeyPress(TObject *Sender, char & Key)

{

if ((Key> ='0' & & Key< ='9')||(Key==', ')||(Key==(char)8)) {}

else Key=0;

}

 

Этим самым все клавиши стали отфильтрованы на клавиатуре кроме цифровых от 0 до 9, запятой и BackSpase (код клавиши 8). Теперь нажатие ненужных клавиш будет игнорироваться.

11. Для перевода длины из одной единицы измерения в другую нужно перевести величину в базовую единицу измерения (например, метры), а потом уже в требуемую. Например, необходимо перевести 5 миль в ярды. Переводим мили в метры: 5миль=8045м, а затем из метров переводим в ярды: 8045м=8801, 969365426696 ярдов.

 

Таблица соотношений единиц измерений длин с метрами:

1мм=0, 001м 1км=1000м 1фут=0, 305м
1см=0, 01м 1миля=1609м 1ярд=0, 914м

 

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

 

void __fastcall TForm1:: Button1Click(TObject *Sender)

{

double v1, v2; //объявление переменных вещественного типа

int i1, i2; //объявление переменных целого типа

if (Edit1-> Text==" ") //проверка если не заполнено поле Edit1 то…

{

ShowMessage(" Введите исходную величину"); //выдается сообщение

return; //выход из функции

}

 

Form1-> Edit2-> Clear(); //очистка поля Edit2

 

//в переменную i1 помещаем индекс выбранной строки в объекте ComboBox1

i1=Form1-> ComboBox1-> ItemIndex;

//в переменную i2 помещаем индекс выбранной строки в объекте ComboBox2

i2=Form1-> ComboBox2-> ItemIndex;

//в переменную v1 помещаем исходное значение длины

v1=Form1-> Edit1-> Text.ToDouble();

 

//перевод из исходной единицы измерения в метры

switch (i1) // оператор выбора из множества вариантов

// проверяется значение переменной i1

{

case 0: v1=v1/1000.0; break; //если i1=0, то v1=v1/1000.0;

case 1: v1=v1/100.0; break; //если i1=1, то...

case 2: v1=v1; break;

case 3: v1=v1*1000; break;

case 4: v1=v1*1609; break;

case 5: v1=v1*0.305; break;

case 6: v1=v1*0.914; break;

}

//перевод из метров в требуемую единицу измерения

switch (i2) // оператор выбора из множества вариантов

// проверяется значение переменной i2

{

case 0: v2=v1*1000; break; //если i2=0, то v2=v1*1000;

case 1: v2=v1*100; break;

case 2: v2=v1; break;

case 3: v2=v1/1000.0; break;

case 4: v2=v1/1609.0; break;

case 5: v2=v1/0.305; break;

case 6: v2=v1/0.914; break;

}

// записываем переведенное значение в поле объекта Edit2

Form1-> Edit2-> Text=FloatToStr(v2);

}

 

Не забыть сохранить проект нажатием кнопки на панели инструментов, провести отладку и тестирование программы

Задание 3.

Написать программу расчета количества секунд между двумя моментами времени. Защитить программу.







Дата добавления: 2014-11-10; просмотров: 1244. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

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

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

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

Значення творчості Г.Сковороди для розвитку української культури Важливий внесок в історію всієї духовної культури українського народу та її барокової літературно-філософської традиції зробив, зокрема, Григорій Савич Сковорода (1722—1794 pp...

Постинъекционные осложнения, оказать необходимую помощь пациенту I.ОСЛОЖНЕНИЕ: Инфильтрат (уплотнение). II.ПРИЗНАКИ ОСЛОЖНЕНИЯ: Уплотнение...

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

Ученые, внесшие большой вклад в развитие науки биологии Краткая история развития биологии. Чарльз Дарвин (1809 -1882)- основной труд « О происхождении видов путем естественного отбора или Сохранение благоприятствующих пород в борьбе за жизнь»...

Этапы трансляции и их характеристика Трансляция (от лат. translatio — перевод) — процесс синтеза белка из аминокислот на матрице информационной (матричной) РНК (иРНК...

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