Народна Освіта » Інформатика » § 38. Компоненти вибору

НАРОДНА ОСВІТА

§ 38. Компоненти вибору

Під час роботи з різними програмами користувачеві часто доводиться робити вибір певних елементів або налаштувань із запропонованих у діалоговому вікні за допомогою таких елементів керування, як перемикач і прапорець (рис. 38.1).

Компонент перемикач (RadioButton)

Перемикачі використовують у ситуаціях, коли потрібно вибрати один із декількох наявних варіантів. Перемикачі завжди розміщуються на формі групами, в яких потрібно вибрати тільки один перемикач. При виборі іншого перемикача попередній вимикається.

Компонент RadioButton (вкладка Standard на Палітрі компонентів) складається з круглого віконця і текстового рядка. У віконці з’являється позначка вибору даного варіанта, а текстовий рядок пояснює його призначення. За зміст текстового рядка відповідає властивість Caption. Основна властивість елемента RadioButton — Checked (Вибрано) логічного типу (Boolean) може набувати значень True або False. У вибраного елемента властивість Checked дорівнює True.

Щоб перемикачі були зручно розташовані на формі, їх потрібно вирівняти.

Для вирівнювання перемикачів треба:

1) вибрати всі перемикачі групи, клацнувши їх по черзі, утримуючи натиснутою клавішу Shift;

2) клацнути по групі правою кнопкою миші для виклику контекстного меню;

 

3) вибрати команду Вирівняти;

4) у діалоговому вікні Вирівнювання (рис. 38.2), що відкриється, вибрати потрібні параметри вирівнювання, наприклад горизонтальне вирівнювання — Ліві сторони, вертикальне вирівнювання — Вирівняти по висоті. Об’єкти будуть розташовані відповідно до вибраних параметрів.

Запрограмувати ввімкнення перемикача RadioButton2 (рис. 38.3).

 

RadioButtonI.Checked = False;

RadioButton2.Checked = True;

RadioButton3Checked = False;

Для зняття вибору в програмі потрібно записати оператор: RadioButton2.Checked := False; // тепер жоден із компонентів не вибраний.

Основною подією компонента RadioButton є onclick. Можна створити спільний обробник події onclick для всіх перемикачів на формі (в групі):

1) вибрати групу перемикачів;

2) у вікні Інспектор об'єктів на вкладці Події двічі клацнути в рядку onclick.

Після цього процедура TForm1.RadioButton1Click буде виконуватися для всіх перемикачів, які були вибрані в момент її створення.

procedure TForml.RadioButton1Click(Sender: TObject); var V: Integer; begin

with (Sender as TRadioButton) do

V := StrToInt(copy(Name,12,1)); // Для RadioButtonI V = 1,

// для RadioButton2 V = 2 і т. д.

Case V of

1: Form1.Color := clRed;

2: Form1 .Color := clYellow;

3: Form1.Color := clGreen; end; end;

Оператор with (Sender as TRadioButton) означає, що властивість Name, яка в ньому використовується, є властивістю саме того з елементів керування RadioButton, із яким відбулася подія.

Компонент прапорець (CheckBox)

Елемент керування Checkbox використовується в програмі для ві-зуалізації станів увімкнено / вимкнено, коли серед незалежних параметрів або характеристик користувачеві необхідно вибрати потрібні.

Компонент CheckBox |7 (вкладка Standard на Палітрі компонентів) є поєднанням квадратного віконця, яке і показує стан компонента (вибраний / невибраний), і текстового рядка (властивість Caption) — заголовка, що пояснює призначення прапорця.

Основною властивістю компонента CheckBox є властивість Checked логічного типу (Boolean). Клацання компонента CheckBox змінює значення властивості Checked на протилежне. Зміна стану перемикача доступна і в програмі:

CheckBoxI .Checked = False; // зняти позначку CheckBox2.Checked = True; // встановити позначку

Під час кожної зміни стану прапорця, тобто при його встановленні або скиданні, для даного елемента керування відбувається подія onclick. З’ясувати, встановлений прапорець чи скинутий, можна за значенням властивості Checked.

Після подвійного клацання компонента CheckBox на формі в режимі розробки створюється процедура обробки події: procedure TForm1.CheckBox1Click(Sender: TObject);

У коді процедури перевіряється стан прапорця й активізуються параметри, пов’язані з прапорцем:

If CheckBoxI .Checked Then

<активізація параметрів, які пов'язані з прапорцем>

Else

<відключення параметрів, які пов'язані з прапорцем>;

Питання для самоперевірки

1. У яких випадках доцільно використовувати компонент RadioButton?

2. Яких значень може набувати властивість Checked компонента RadioButton?

3. Яка подія є основною для компонента RadioButton?

4. Як створити спільний обробник події onclick для групи перемикачів?

5. З якою метою в програмі може бути використаний компонент CheckBox?

6. Як організувати перевірку значення властивості Checked при зміні стану прапорця?

Вправа 38

Скласти програму, в якій реалізовано головоломку Лойда: із заданого набору чисел вибрати ті, сума яких дорівнює 50.

1) Створіть новий проект. Змініть заголовок форми на «Головоломка Лойда».

2) Додайте на форму десять компонентів CheckBox згідно з рисунком. Змініть заголовки компонентів CheckBox на числа з набору, запропонованого С. Лойдом: 25, 27, 3, 12, 6, 15, 9, 30, 21, 19.

Додайте на форму два компоненти Label. Змініть заголовок напису Labell на «Сума чисел:». Напис Label2 призначений для виведення суми чисел, які відповідають вибраним прапорцям.

 

3) Опишіть змінну S як глобальну: var Forml: TFormI;

S: Integer;

4) Створіть процедуру обробки події OnCreate для форми.

Змінна S набуває значення 0 при завантаженні форми: procedure TForm1.FormCreate(Sender:

TObject); begin

S := 0; end;

5) Створіть спільний для всіх прапорців обробник події onclick. У програмному коді реалізується такий алгоритм: якщо прапорець установлений, відповідне число додається до суми S, якщо прапорець скинутий, відповідне число віднімається від суми S. Після цього значення суми виводиться в напис Label2. procedure TFormI .CheckBox1Click(Sender: TObject);

begin

with (Sender as TCheckBox) Do begin If Checked Then

S := S + StrToInt(Caption)

Else S := S - StrToInt(Caption);

end;

Label2.Caption := IntToStr(S); end;

6) Запустіть проект на виконання. Перевірте роботу програми. Розв’яжіть головоломку Лойда. Збережіть проект у папці Вправа 38.

Комп’ютерне тестування

Виконайте тестове завдання 38 з автоматичною перевіркою на сайті interactive.ranok.com.ua.

 

Це матеріал з підручника Інформатика 8 клас Бондаренко

 

Категорія: Інформатика

Автор: admin от 7-10-2016, 22:43, Переглядів: 4206