| Тема. Складання та виконання алгоритмів з елементами управління для завдання логічного значення величини.
Елементи для введення даних: прапорець, перемикач.
Під час роботи з різними програмами користувачеві досить часто доводиться робити вибір певних елементів або налаштувань із запропонованих у діалоговому вікні. Ми ознайомимося з компонентами RadioButton (перемикач) і CheckBox (прапорець), які дозволяють робити вибір різних можливостей або режимів роботи.
Для реалізації розгалуження в проекті можна використати елементи управління:

Дані елементи можуть набувати один із двох виглядів:
Увімкнений Не увімкнений
Тому за їх допомогою у програмний код можна передати логічне значення:
True — увімкнений False —не увімкнений
|
Прапорець CheckBox
Перемикач RadioButton
|
CheckBox
Окрім стандартних властивостей, таких як Caption, Font та інших, які ви вже використовували для інших елементів управління, компонент CheckBox має особливі.
Checked
Зміна стану прапорця:
- якщо значення цієї властивості True, то прапорець увімкнений;
- якщо значення властивості False, то прапорець не увімкнений .
Значення змінюється автоматично, хоча його також можна змінити у програмному коді
|
State
Стан прапорця.
Дає змогу задавати стан увімкнення прапорця за одним із параметрів:
- увімкнений cbСhecked,
- не увімкнений cbUnChecked,
- проміжний стан (сірий) cbGrayed
|
З елементом управління CheckBox пов'язані події:
OnClick
Виникає кожного разу, коли користувач вмикає чи вимикає прапорець на формі після запуску програми на виконання.
|
OnChange
Також виникає, коли користувач вмикає чи вимикає прапорець.
На відміну від події OnClick, яка відбувається лише під час клацання на прапорці, подія OnChange відбувається в будь-якому разі, коли змінюється стан прапорця — якщо користувач мишею увімкнув-вимкнув прапорець, чи якщо така зміна передбачена у програмному коді.
Зміна передбачена у програмному коді, що виконується після натиснення деякої кнопки, за допомогою команди:
ChB1.Checked:= not ChB1.Checked;
Тоді при натисненні на таку кнопку стан прапорця зміниться на протилежний — відбудеться OnChange , а подія ОnСlіск — ні, адже мишею на прапорці не клацали.
|
Щоб додати до програмного коду процедуру опрацювання однієї з цих подій, можна двічі клацнути на ній у таблиці вікна Інспектор об'єктів.
RadioButton
Властивість Checked елемента управління RadioButton, яка визначає стан перемикача, не може бути змінена у програмному коді, на відміну від аналогічної в елемента управління CheckBox.
Вправа 3. Складіть проект Замовлення квітів у середовищі Lazarus для оформлення електронного замовлення квітів за зразком.
У проекті натиснення кнопки Оформити замовлення викликає виведення відповідного тексту в текстовому полі, яке захищене від змін, а натиснення кнопки Завершити – закриває вікно форми.
- Сплануйте проект. Передбачте, які об'єкти будуть використані на екранній формі та які події будуть відбуватись із ними.
- Відкрийте середовище Lazarus, створіть новий проект і збережіть його складові в папку Замовлення_квітів. Змініть властивості об'єкта Form1, розмістіть на формі потрібні об'єкти та надайте значень їх властивостям. Візьміть до уваги, що для всіх об'єктів використовується властивість шрифта–BookmanOldStyle, розмір – 14. Стиль шрифта визначте за малюнком.
- Створіть процедуру опрацювання події: натиснуто кнопку Оформити замовлення. У вікні редактора коду введіть код:

- Створіть процедуру опрацювання події натиснення кнопки Завершити. Для цього використайте метод Close.
- Запустіть проект на виконання. Перевірте, чи відповідають умові завдання дії, пов'язані з об'єктами управління екранної форми. Якщо є помилки, –виправте їх.
- Завершіть роботу із проектом і середовищем програмування.
procedure TForm1.BitBtn1Click(Sender: TObject);
var k1, k2, k3, k4, k5, p1, p2, p3 : boolean; s, t : string;
begin
k1 := CheckBox1.Checked; { логической переменной k1 присваивается значение Checked (false / true) элемента CheckBox1 и т.д.}
k2 := CheckBox2.Checked;
k3 := CheckBox3.Checked;
k4 := CheckBox4.Checked;
k5 := CheckBox5.Checked;
p1 := RadioButton1.checked; { логической переменной р1 присваивается значение Checked (false / true) элемента RadioButton1 и т.д. }
p2 := RadioButton2.checked;
p3 := RadioButton3.checked;
s := ' ';
if k1 then s := s + checkbox1.caption + ' '; { если значение логической переменной k1 - true, к значению строковой переменной s присоединяется значение свойства caption элемента checkbox1 и т.д.}
if k2 then s := s + Checkbox2.caption + ' ';
if k3 then s := s + Checkbox3.caption + ' ';
if k4 then s := s + Checkbox4.caption + ' ';
if k5 then s := s + Checkbox5.caption + ' ';
if p1 then t := ' в корзинке '; { если значение логической переменной р1 - true, строковой переменной t присваивается значение - в корзинке и т.д. }
if p2 then t := ' в обычной упаковке ';
if p3 then t := ' в особенной упаковке ';
label1.Caption := 'Вы выбрали ' + s + #13 + t; {формирование значения (текстового сообщения ) свойства Caption надписи( метки) label1, #13 - переход на следующую строку при выводе текста в надпись}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;
|
Групи перемикачів (radioGroup) та групи прапорців (CeckGroup)
Додавання форм в проект
Список, що розкривається
| |