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

Свойство Описание
Name Имя компонента. Используется для доступа к компоненту и его свойствам
Glyph Битовый образ, в котором находятся картинки для каждого из состояний кнопки. В битовом образе может быть до четырех изображений кнопки (рис. П1.15)
NumGlyphs Количество картинок в битовом образе Glyph
Flat Свойство Flat определяет вид кнопки (наличие границы). Если значение свойства равно true, то граница кнопки появляется только при позиционировании указателя мыши на кнопке
Group Index Идентификатор группы кнопок. Кнопки, имеющие одинаковый идентификатор группы, работают подобно радиокнопкам: нажатие одной из кнопок группы вызывает срабатывание других кнопок этой группы. Чтобы кнопку можно было зафиксировать, значение свойства Grouplndex не должно быть равно нулю
Down Идентификатор состояния кнопки. Изменить значение свойства можно, если значение свойства Grouplndex не равно нулю
AllowAllUp Свойство определяет возможность отжать кнопку. Если кнопка нажата и значение свойства равно true, то кнопку можно отжать
ShowHint Разрешает (true) или запрещает (false) отображение подсказки при позиционировании указателя на кнопке

Компонент UpDown

Компонент UpDown представляет собой две кнопки, используя которые можно изменить значение внутренней переменной-счетчика на определенную величину. Увеличение или уменьшение значения происходит при каждом щелчке на одной из кнопок.

Описание лабораторной работы

Задание 1

1. Установите на форму компонент — индикатор процесса CGauge,из вкладки компонентов Samples,которыйпозволяет следить визуально за состоянием любого запущенного нами процесса или действия:

2. C помощью свойства — BackColor -> clMoneyGreen, можно задать и настроить предпочтительный цвет для данного компонента Cgauge, вместо стандартного белого - BackColor->clWhite:

3. Добавьте на форму нашего приложения несколько новых компонентов (из вкладки Standard - Label, из вкладки Additional - SpeedBotton) и заполним необходимые их свойства (см. Рис.2).

Свойства компонента SpeedButton - student2.ru

Рис.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., и написать соответствующую программу.

Свойства компонента SpeedButton - student2.ru

Рис. 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.

Свойства компонента SpeedButton - student2.ru

Наши рекомендации