Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика. Базовый курс. Ч.3. Основы алгоритмизации и про- граммирования в среде Visual C++ 2005.pdf
Скачиваний:
53
Добавлен:
05.02.2023
Размер:
3.81 Mб
Скачать

175

float r,c,p,stoim; r=float::Parse(textBox1->Text) ; c=float::Parse(textBox2->Text); p=float::Parse(textBox3->Text); stoim=r/100*p*c;

if (checkBox1->Checked) stoim=stoim*2; label4->Text="Стоимость вашей поездки на дачу \n

составляет:" + (stoim).ToString()+" рублей";

}

5. СПИСКИ ВЫБОРА И ПОЛОСЫ ПРОКРУТКИ. ГРАФИЧЕСКИЕ КОМПОНЕНТЫ В C++Builder

5.1. Список выбора ListBox

Этот компонент находится на вкладкеStandart. Используется для выбора одного или нескольких параметров из списка. Доступ к строкам списка – через свойство Items строкового типа TString, при этом номер строки определяется свойствомItemIndex (счет идет от нуля, т.е. первый элемент списка имеет нулевой индекс).

Пример 5-1. Создать приложение со списком цветов. При выборе каждого из них – в поле Edit появляется имя выбранного цвета и меняется цвет формы на выбранный

(см. рис. 9.15).

Разместим ListBox и TextBox.

Дважды щелкаем на свойстве Items компонента ListBox и вводим список цветов: красный, оранжевый…

Создадим

SelectedIndexChanged

для

него:

Рис. 9.15

private: System::Void listBox1_SelectedIndexChanged (System::Object^ sender, System::EventArgs^ e) {textBox1->Text=listBox1->SelectedItem->ToString() ;

 

//Strings[listBox1->SelectedIndex];

switch ( listBox1->SelectedIndex )

{case

0: this->BackColor=Color::Red; break;

case

1: this->BackColor=Color::Orange; break;

176

 

case

2: this->BackColor=Color::Yellow; break;

case

3: this->BackColor=Color::Green; break;

case

4: this->BackColor=Color::SkyBlue; break;

case

5: this->BackColor=Color::Blue; break;

case

6: this->BackColor=Color::Violet; break;} }

5.2. Полосы прокрутки

Полосы прокрутки vScrollBar (вертикальная полоса прокрутки) и hScrollBar (горизонтальная полоса прокрутки) используются для прокручивания информации в окне. Значение свойства полосы прокрутки Value меняется (по умолчанию) от 0 (Min) до 100 (Max), но может быть изменено пользователем.

Пример 5-2. Создать приложение с двумя полосами прокрутки с выбором чисел от 1 до 10 и вычислением суммы и произведения выбранных таким образом чисел (см. рис. 9.16).

Рис. 9.16

Разместим на форме две полосы: горизонтальную и вертикальную. Зададим у каждой из них Min равным 1, а Max равным 10. Рекомендуется также изменить свойствоLargeChange (сделать равным 1). Разместим также четыре надписиLabel. Создадим для первой полосы событие Scroll:

private: System::Void hScrollBar1_Scroll(System::Object^ sender, System::Windows::Forms::ScrollEventArgs^ e)

{label1->Text=

177

"Первое число: "+(hScrollBar1->Value).ToString();

}

Аналогично создаем функцию событияScroll и для второй полосы прокрутки:

private: System::Void vScrollBar1_Scroll (System::Object^ sender, System::Windows:: Forms::ScrollEventArgs^ e)

{ label2->Text=

«Второе число: «+(vScrollBar1->Value).ToString();

}

И для кнопки «Вычислить» событие Click :

private: System::Void button1_Click(System:: Object^ sender, System::EventArgs^ e)

{ int a,b,s,p; a=hScrollBar1->Value; b=vScrollBar1->Value; s=a+b;

p=a*b;

label3->Text=«Сумма = « + s.ToString(); label4->Text=«Произведение = « + p.ToString();

}

Остается проверить приложение в работе.

5.3. Графика

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

·включение графического режима командой вида:

e = this->CreateGraphics()

·настроить «карандаш» для рисования Pen (его цвет и толщи-

ну),

·при рисовании закрашенных фигур указывают тип закраски

SolidBrush и ее цвет,

·при выводе текста в это графическое окно настраивают шрифт

ит.п.

178

Для собственно вывода графических объектов служат специальные методы. Например:

· для рисования линии:

e->DrawLine(myPen, 0, 0, 200, 300);

· для рисования эллипса:

e->DrawEllipse(myPen,Rectangle(0,0,200, 300));

· для рисования прямоугольника:

e->DrawRectangle(myPen, Rectangle(0, 0, 200, 300));

· для рисования закрашенного прямоугольника:

e->FillRectangle(myBrush, Rectangle(0, 0, 200, 300));

· для вывода текста на рисунке:

e->DrawString(s,myFont,myBrush, 10, 10);

Здесь myPen – заданный вид карандаша, myBrush – заданный вид , Rectangle – заданный прямоугольник (первые два числа координаты левой верхней точки прямоугольника на форме, вторые

– это его длина и высота). При выводе текста s – содержит строку текста, myFont – заданный тип шрифта.

Пример 5-3. Нарисовать флаг России и сделать снизу надпись

(см. рис. 9.17).

Рис. 9.17

// ФЛАГ РОССИИ

private: System::Void Form1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e)

{

Pen^ myPen = gcnew Pen(Color::Black,3);// цвет и толщина пера

SolidBrush^ myBrush =

gcnew SolidBrush(Color::Black); //цвет закраски System::Drawing::Font^ myFont =