Тема. Групи перемикачів (RadioGroup) та групи прапорців (CheckGroup)
На форму можна додати компоненти:
|
Їх використовують у разі, якщо необхідно розмістити декілька груп прапорців чи перемикачів.
-
Якщо на формі використано декілька груп перемикачів, у межах кожної з груп можна увімкнути по одному.
-
Із перемикачами та прапорцями в межах групи виконують ті самі дії, як і з окремими елементами управління на формі.
Елементи управління RadioGroup і CheckGroup мають свої особливі властивості.
- Columns - кількість стовпців елементів у групі.За замовчуванням — 1
- Itemlndex - визначає номер (починаючи з 0) елемента управління, який виділений у групі. Якщо не виділений жоден, то значення властивості дорівнює -1
- Items - містить список заголовків елементів групи. Для введення заголовків відкривається редактор, який викликають за допомогою кнопки , розташованої праворуч у рядку властивості Items
Вправа 4. Розробіть проект Кольорова форма в середовищі Lazarus, у якому форма змінюватиме свої властивості – колір і розмір залежно від обраних перемикачів у групах Колір та Розмір.
Відкрийте середовище Lazarus, створіть новий проект і збережіть його складові в папку Кольорова_форма. Змініть значення властивості Caption об'єкта Form1 на Кольори.
1. Розмістіть на екранній формі потрібні об'єкти – групи перемикачів (radioGroup1. radioGroup2) із заголовками Колір та Розмір:
Змініть властивість Items кожної групи, увівши відповідні пояснення до перемикачів
⇒
Створіть процедуру опрацювання події: натиснуто кнопку Пуск.
У редакторі коду введіть команди для зміни значення властивості color екранної форми залежно від увімкненого перемикача. Значення цієї властивості розпочинається із літер cl, після яких записують англійською мовою назву кольору. Наприклад:
if radioGroup1.Itemlndex=0 then form1.color:=clred;
Введіть команди зміни розміру форми за зразком:
if radioGroup2.Itemlndex=0 then
begin
form1.height:=350;
forml.width:=400;
end;
Для середнього розміру оберіть висоту 450, ширину 600, а для великого – 550, 800 відповідно.
Запустіть проект на виконання. Перевірте, чи відповідають умові завдання дії, пов'язані з об'єктами управління екранної форми. Якщо є помилки – виправте їх.
Завершіть роботу з проектом і середовищем програмування.
Варіант програмного коду.
procedure TForm1.BitBtn1Click(Sender: TObject); // элемент управления - radiogroup 2 procedure TForm1.Button1Click(Sender: TObject); end; procedure TForm1.FormCreate(Sender: TObject); |
Вправа 5.
Розробіть проект Правила дорожнього руху, за яким можна визначити, чи не порушив правила дорожнього руху водій, який проїхав відстань s за час t, якщо на шляху встановлео одне із запропонованих обмежень на швидкість: 40 км/год, 60 км/год, 90 км/год. Передбачьте, що дані вводяться в текстові поля,обмеження обираються за допомогою елементів управління (Radiogroup або RadioButton) а результат виводиться у вікні повідомлення.
Інтерфейс проекту |
Зміна властивості Items кожної групи, увівши відповідні пояснення до перемикачів |
Програмний код проекту.
procedure TForm1.BitBtn1Click(Sender: TObject);
var s, t, v: real;
begin
s :=strtofloat(edit1.Text);
t:=strtofloat(edit2.Text);
v:=int(s/t); //целая часть числа, тип результата - вещественный
if radiogroup1.itemindex = 0 then // если выбран первый элемент группы radiogroup1
begin
if v > 40 then messagedlg('Скорость вашего движения ' + floattostr(v) + ' км/час , вы превысили скорость',mtinformation,[mbok],0)
else messagedlg('Скорость вашего движения ' + floattostr(v) + ' км/час , вы не нарушаете правила дорожнего движения',mtinformation,[mbok],0)
end;
if radiogroup1.itemindex = 1 then // если выбран второй элемент группы radiogroup1
begin
if v > 60 then messagedlg('Скорость вашего движения ' + floattostr(v) + ' км/час , вы превысили скорость',mtinformation,[mbok],0)
else messagedlg('Скорость вашего движения ' + floattostr(v) + ' км/час , вы не нарушаете правила дорожнего движения',mtinformation,[mbok],0)
end;
if radiogroup1.itemindex = 2 then // если выбран третий элемент группы radiogroup1
begin
if v > 90 then messagedlg('Скорость вашего движения ' + floattostr(v) + ' км/час , вы превысили скорость',mtinformation,[mbok],0)
else messagedlg('Скорость вашего движения ' + floattostr(v) + ' км/час , вы не нарушаете правила дорожнего движения',mtinformation,[mbok],0)
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
radiogroup1.itemindex := -1; {если не выделен ни один элемент группы radiogroup1 свойству itemindex
( определяющему номер элемента управления, который выделен в группе) присваивается начение -1}
edit1.Text :='';
edit2.Text :='';
messagedlg('Исходные данные сброшенны!' ,mtinformation,[mbok],0);
end;