Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Свойства компонента SpeedButton
Компонент UpDown Компонент UpDown представляет собой две кнопки, используя которые можно изменить значение внутренней переменной-счетчика на определенную величину. Увеличение или уменьшение значения происходит при каждом щелчке на одной из кнопок.
Описание лабораторной работы Задание 1 1. Установите на форму компонент — индикатор процесса CGauge, из вкладки компонентов Samples, которыйпозволяет следить визуально за состоянием любого запущенного нами процесса или действия: 2. C помощью свойства — BackColor -> clMoneyGreen, можно задать и настроить предпочтительный цвет для данного компонента Cgauge, вместо стандартного белого - BackColor-> clWhite: 3. Добавьте на форму нашего приложения несколько новых компонентов (из вкладки Standard - Label, из вкладки Additional - SpeedBotton) и заполним необходимые их свойства (см. Рис.2). Рис.2 Размещение компонентов на форме 4. Надписи на кнопках (SpeedBotton) и метках (Label), могут быть любыми и задаются с помощью свойств этих компонентов — Caption, а размер букв и шрифт устанавливается с помощью свойства — Font. 5. Устанавливая для нужных компонентов SpeedBotton свойство GroupIndex в число отличное от нуля (например в единицу) и свойство AllowAllUp в True, получатся кнопки с эффектом нажатия до определенного момента пока снова не будут нажаты, при этом получается эффект противоположный нажатию кнопки. Так как, в нашем случае, кнопки с направлениями движения (Вперед, Назад, Влево, Вправо) имеют одно и тоже значение свойства GroupIndex=1, то при нажатии на любую из кнопок движения предыдущая кнопка возвращается в исходное положение. А вот кнопку с надписью — Стоп, наоборот не будем включать ни в группу кнопок движения, ни изменять выше перечисленные свойства для кнопок. Вот для нее мы опишем действия, которые она должна сделать при однократном нажатии. Для этого в Окне формы нужно два раза левой кнопкой мышки щелкнуть, по кнопке с надписью — Стоп (SpeedButton2), при этом автоматически среда быстрой визуальной разработки фирмы создаст в файле.cpp, обработчик событий при нажатии на кнопку — SpeedButton2Click, который при первом вызове всегда пустой. 6. Отменяем действия кнопок движения переводя их в исходное состояние. void __fastcall TForm1:: SpeedButton2Click(TObject *Sender) { if(Form1-> SpeedButton4-> Down==true) Form1-> SpeedButton4-> Down=false; if(Form1-> SpeedButton5-> Down==true) Form1-> SpeedButton5-> Down=false; if(Form1-> SpeedButton1-> Down==true) Form1-> SpeedButton1-> Down=false; if(Form1-> SpeedButton3-> Down==true) Form1-> SpeedButton3-> Down=false; } Программный код теперь будет выглядеть следующим образом: void __fastcall TForm1:: SpeedButton2Click(TObject *Sender) { if(Form1-> SpeedButton4-> Down==true) Form1-> SpeedButton4-> Down=false; if(Form1-> SpeedButton5-> Down==true) Form1-> SpeedButton5-> Down=false; if(Form1-> SpeedButton1-> Down==true) Form1-> SpeedButton1-> Down=false; if(Form1-> SpeedButton3-> Down==true) Form1-> SpeedButton3-> Down=false; Label1-> Caption=" Информация"; } void __fastcall TForm1:: SpeedButton4Click(TObject *Sender) { Label1-> Caption=" Информация"; } void __fastcall TForm1:: SpeedButton5Click(TObject *Sender) { Label1-> Caption=" Информация"; } void __fastcall TForm1:: SpeedButton1Click(TObject *Sender) { Label1-> Caption=" Информация"; } void __fastcall TForm1:: SpeedButton3Click(TObject *Sender) { Label1-> Caption=" Информация"; } 7. Теперь разберемся с последним компонентом - индикатором процесса CGauge, который мы пока не задействовали в нашем приложении. Для наглядности работы данного компонента в обработчик события -SpeedButton2Click, добавим следующее: void __fastcall TForm1:: SpeedButton2Click(TObject *Sender) { Form1-> CGauge1-> MaxValue=100; Form1-> CGauge1-> Progress=0; for(char g=0; g< =100; g++) { Form1-> CGauge1-> Progress=g; Sleep(25); // Делаем задержку } Form1-> CGauge1-> Progress=0; } Задание 2 Ввести три числа - x, y, z. Вычислить по усмотрению u=sin(x), u=cos(x) или u=tg(x). Найти по выбору максимальное из трех чисел: max(u, y, z). Cоздать форму, представленную на рис. 2., и написать соответствующую программу. Рис. 3 8. Создайте форму, скорректировав текст надписей и положение окон TEdit. 9. Выберите в меню компонентов Standard кмпонент ТCheckBox и поместите его в нужное место формы. С помощью инспектора объектов измените заголовок (Caption) на maxabs. В зависимости от того, нажата или нет кнопка, булева переменная CheckBox1.Checked будет принимать значение true или false. 10. Выберите в меню компонентов Standard пиктограмму и поместите ее в нужное место формы. На форме появится окаймленный линией чистый прямоугольник с заголовком RadioGroup1. Замените заголовок (Caption) на U(x). Для того, чтобы разместить на компоненте кнопки, необходимо свойство Columns установить равным единице (кнопки размещаются в одном столбце). Дважды щелкните по правой части свойства Items мышью, появится строчный редактор списка заголовков кнопок. Наберите три строки с именами: в первой строке - cos(x), во второй - sin(x), в третьей - tg(x), нажмите ОК. После этого на форме внутри окаймления появится три кнопки- переключателя с введенными надписями. Обратите внимание на то, что в тексте программы появится переменная RadioGroup1 типа TRadioGroup. Теперь при нажатии одной из кнопок группы в переменной целого типа RadioGroup1− > ItemIndex будет находиться номер нажатой клавиши (отсчитывается от нуля), что используется в тексте приведенной программы. void __fastcall TForm1:: FormCreate(TObject *Sender) { Edit1-> Text=" 0, 1"; Edit2-> Text=" 0, 356"; Edit3-> Text=" 0"; Memo1-> Clear(); Memo1-> Lines-> Add(" Рез-ты ст. гр.920201 Петрова И.И." ); } //----------------------------------------------------- void __fastcall TForm1:: Button1Click(TObject *Sender) { double x, y, z, u, ma; // Ввод исходных данных и вывод в окно Memo1 x=StrToFloat(Edit1-> Text); Memo1-> Lines-> Add(" x=" +Edit1-> Text); y=StrToFloat(Edit2-> Text); Memo1-> Lines-> Add(" y=" +Edit2-> Text); z=StrToFloat(Edit3-> Text); Memo1-> Lines-> Add(" z=" +Edit3-z=StrToFloat(Edit3-> Text); Memo1-> Lines-> Add(" z=" +Edit3-> Text); // Проверка номера нажатой кнопки и выбор //соответствующей ей функции switch(RadioGroup1-> ItemIndex) { case 0: u=cos(x); break; case 1: u=sin(x); break; case 2: u=tan(x); break; } if (CheckBox1-> Checked) // Проверка состояния //кнопки CheckBox1 { u=fabs(u); y=fabs(y); z=fabs(z); } // Нахождение максимального из трех чисел if (u> y) ma=u; else ma=y; if (z> ma) ma=z; if (CheckBox1-> Checked) Memo1-> Lines-> Add(" maxabc=" + FloatToStrF(ma, ffFixed, 8, 6)); else Memo1-> Lines-> Add(" max=" + FloatToStrF(ma, ffFixed, 8, 6)); } Задание 3 Отредактируйте вид формы и текст программы в соответствии с полученным заданием. Предусмотрите вывод информации, показывающий, по какой ветви производились вычисления. В качестве f(x) использовать по выбору: x2, x3, ex. Популярное:
|
Последнее изменение этой страницы: 2017-03-08; Просмотров: 896; Нарушение авторского права страницы