1. 8
За новою програмою
Урок 39
Елементи для
введення даних:
текстове поле,
прапорець,
випадаючий список.
2. 8
ЗапитанняРозділ 6
§ 6.5
1. Який вигляд мають команди повного і неповного
розгалуження в Object Pascal і як вони виконуються?
2. Які властивості напису і поля ви знаєте, що
визначають їх значення, як їх можна змінити?
3. Для чого
використовувалися в
програмах, з якими ви
працювали, прапорці, поля
з розкривними списками,
перемикачі?
3. 8
Прапорці та їх використанняРозділ 6
§ 6.5
Розглянемо компонент прапорець. Значення деяких
його властивостей, зокрема властивості Checked (англ.
checked - перевірено), можуть бути використані в
логічному виразі в команді розгалуження.
Для розміщення на формі прапорця потрібно двічі
клацнути на кнопці TCheckBox (англ. checkbox - коробка
для перевірки) на вкладці Standard з компонентами.
4. 8
Прапорці та їх використанняРозділ 6
§ 6.1
Після цього прапорець з'явиться у верхній лівій частині
форми, а його ім'я додасться до списку компонентів
проекту в полі Components вікна Інспектор об'єктів.
За потреби
прапорець можна
перетягнути в будь-
яке інше місце
форми.
5. 8
Поле, його властивості
та обробники подій для поля
Властивості прапорця Caption, Top, Left, Name, Color,
Enabled, Visible, Font, Width, Height аналогічні до
відповідних властивостей напису.
Розділ 6
§ 6.1
Зокрема, значення
властивостей Width і Height
прапорця визначаються
довжиною тексту праворуч
від прапорця і розміром
шрифта, яким виведено
цей текст.
6. 8
Прапорці та їх використанняРозділ 6
§ 6.5
Текст прапорця є значенням
властивості Caption прапорця. Цей
текст, як і для напису, можна
вводити безпосередньо на вкладці
Властивості в полі Caption, а
можна вводити у вікні Редактор
рядків, яке відкривається
вибором кнопки праворуч від
поля Caption.
7. 8
Прапорці та їх використанняРозділ 6
§ 6.5
Властивість Checked прапорця може набувати одне з
двох значень:
true false
позначку прапорця
встановлено,
прапорець вибрано
позначку прапорця
не встановлено,
прапорець не вибрано
8. 8
Прапорці та їх використанняРозділ 6
§ 6.5
Якщо на формі розміщено кілька прапорців, то серед
них можна:
вибрати один,
вибрати кілька,
не вибрати жодного,
вибрати всі.
Якщо прапорець
вибрано, то у нього
всередині з'являється
позначка
9. 8
Прапорці та їх використанняРозділ 6
§ 6.5
Встановленням
позначок прапорців
можна встановити
значення однієї або
кількох властивостей
об'єкта з деякого
визначеного набору
властивостей.
10. 8
Прапорці та їх використанняРозділ 6
§ 6.5
Розглянемо, як можна використати прапорці для
реалізації розгалуження.
Нехай, наприклад, нам
потрібно в ході виконання
проекту змінювати значення або
тільки однієї з властивостей
вікна (або заголовок, або колір,
або розміри), або кількох з них,
або не змінювати значення
жодної з них.
11. 8
Прапорці та їх використанняРозділ 6
§ 6.5
Для цього розмістимо на формі кнопку і три прапорці.
Під час розміщення прапорців на формі для кожного з
них за замовчуванням значення властивості Checked
встановлюється false.
Оскільки під час виконання
проекту жодний прапорець може
бути не вибраний, то доцільно
залишити такі початкові значення
властивості Checked для всіх
прапорців.
12. 8
Прапорці та їх використанняРозділ 6
§ 6.5
Створимо процедуру для опрацювання події Click для
кнопки і до її тексту помістимо такі три послідовні (не
вкладені одна в одну) команди розгалуження:
If CheckBox1.Checked
Then Form1.Caption := 'Заголовок змінений';
If CheckBox2.Checked Then Form1.Color := clRed;
If CheckBox3.Checked
Then begin
Form1.Width := 500;
Form1.Height := 200;
end;
13. 8
Прапорці та їх використанняРозділ 6
§ 6.5
У кожній із цих команд,
незалежно одна від одної, буде
визначатися, вибрано
відповідний прапорець чи ні. І
залежно від цього, у кожній з них
будуть чи не будуть змінюватися
значення відповідних
властивостей вікна.
14. 8
Поле з розкривним списком
та його використанняРозділ 6
§ 6.5
Ще одним компонентом, значення властивостей якого
можна використати в логічному виразі в команді
розгалуження, є поле з розкривним списком.
Для розміщення на формі поля з розкривним списком
потрібно двічі клацнути на кнопці TComboBox (англ.
combobox - поле зі списком) на вкладці Standard з
компонентами.
15. 8
Поле з розкривним списком
та його використанняРозділ 6
§ 6.5
Після цього поле з розкривним списком з'явиться у
верхній лівій частині форми, а його ім'я додасться до
списку компонентів проекту в полі Components вікна
Інспектор об'єктів.
За потреби поле з
розкривним списком
можна перетягнути в
будь-яке інше місце
форми.
16. 8
Поле з розкривним списком
та його використанняРозділ 6
§ 6.5
Властивості Top, Left, Height, Width, Name, Color,
Enabled, Visible, Font, Text поля з розкривним списком
повністю аналогічні до відповідних властивостей поля.
17. 8
Поле з розкривним списком
та його використанняРозділ 6
§ 6.5
Для додавання рядків на етапі розробки інтерфейсу
потрібно:
1
•на вкладці Властивості вікна
Інспектор об'єктів в рядку
Items клацнути кнопку
2
•ввести потрібну інформацію у
вікні редактора вмісту
Редактор рядків;
3
•клацнути кнопку ОК.
18. 8
Поле з розкривним списком
та його використанняРозділ 6
§ 6.5
Під час виконання проекту
можна відкрити цей список і
вибрати будь-який його
рядок. При цьому
відповідний текст потрапляє
в поле і стає значенням
властивості Text поля з
розкривним списком.
Розглянемо, як можна
використати поле з
розкривним списком у
команді розгалуження.
19. 8
Поле з розкривним списком
та його використанняРозділ 6
§ 6.5
Нехай, наприклад, у ході виконання проекту потрібно
змінювати значення тільки однієї з властивостей вікна:
або заголовок або колір або розміри
Розмістимо на
формі поле з
розкривним
списком і створимо
відповідний список.
20. 8
Поле з розкривним списком
та його використанняРозділ 6
§ 6.5
Розмістимо також на формі кнопку і складемо
процедуру - обробник події Click для цієї кнопки, під час
виконання якої вибиратимемо один з рядків
розкривного списку.
Залежно від вибраного
рядка змінюватимуться або
заголовок форми, або її
колір, або її розміри.
21. 8
Поле з розкривним списком
та його використанняРозділ 6
§ 6.5
Виберемо перший пункт списку Заголовок і клацнемо
кнопку. Тоді під час виконання процедури значення
логічного виразу (ComboBox1.Text = 'Заголовок') =
true, а значить виконуватиметься команда
Form1.Caption := 'Заголовок
змінений', яка змінить
заголовок вікна, після чого
виконання команди
розгалуження і всієї
процедури закінчиться.
22. 8
Поле з розкривним списком
та його використанняРозділ 6
§ 6.5
Якщо вибрати другий пункт списку Колір і клацнути
кнопку, то під час виконання процедури значення
логічного виразу (ComboBox1.Text = 'Заголовок') =
false. Тоді обчислюється значення логічного виразу
ComboBox1.Text = 'Колір', і
воно дорівнює true. А значить
виконуватиметься команда
Form1.Color := clRed, яка
змінить колір вікна, після
чого виконання команди
розгалуження і всієї
процедури закінчиться.
23. 8
Поле з розкривним списком
та його використанняРозділ 6
§ 6.5
Якщо вибрати третій пункт списку Розміри і клацнути
кнопку, то під час виконання процедури значення
логічного виразу (ComboBox1.Text = 'Заголовок') =
false. Після цього обчислюється значення логічного
виразу ComboBox1.Text = 'Колір', і воно теж дорівнює
false. Після цього обчислюється значення логічного
виразу ComboBox1.Text = 'Розміри’, і воно дорівнює
true. А значить виконуватимуться команди Form1.Width
:= 600 і Form1.Height := 300, які змінять ширину і
висоту вікна, після чого виконання команди
розгалуження і всієї процедури закінчиться.
24. 8
Поле з розкривним списком
та його використанняРозділ 6
§ 6.5
Якщо не вибрати жодного
пункту списку і клацнути
кнопку, то значення всіх
логічних виразів у розгалуженні
будуть false і в цьому випадку
не змінюватимуться значення
жодної властивості вікна і
виконання процедури
закінчиться.
26. 8
Дайте відповіді на запитання
1. Для чого використовують прапорці?
2. Які значення може мати властивість Checked для
прапорця?
3. Для чого використовують поле з розкривним
списком?
Розділ 6
§ 6.5
4. Як потрібно записувати команди
розгалуження, у яких використовується
значення властивості Checked для прапорців?
5. Як доцільно записати команди розгалуження,
у яких використовуються значення
властивостей поля з розкривним списком?
28. 8
Завдання 4.
Скласти програму, в якій
реалізовано головоломку Лойда: із
заданого набору чисел вибрати ті,
сума яких дорівнює 50.
29. 8
1. Створіть новий проект.
2. Додайте на форму десять
компонентів CheckBox (див. рисунок).
Властивостям Caption компонентів
CheckBox надайте значень з набору
чисел, запропонованих С. Лойдом: 25, 27,
З, 12, 6, 15, 9, 30, 21, 19.
30. 8
3. Додайте на форму два компоненти Label. Властивості
Caption компонента Label1 надайте значення «Сума
чисел:». Компонент Label2 призначений для виведення
суми чисел, які відповідають вибраним прапорцям.
4. Опишіть змінну S як глобальну:
var Form1:TForm1;
S: Integer;
31. 84. Створіть процедуру обробки події OnCreate для форми.
5. Змінна S набуває значення 0 при завантаженні форми:
procedure TForm1.FormCreate(Sender: TObject);
begin
S := 0;
end;
6. Створіть спільний для всіх прапорців обробник події OnCIick. У програмному коді реалізується такий
алгоритм: якщо прапорець установлений, відповідне число додається до суми S, якщо прапорець
скинутий, відповідне число віднімається від суми S. Після цього значення суми виводиться в напис
І.аЬеІ2.
procedure TForm1.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;
7.Запустіть проект. Спробуйте розв’язати головоломку.