Вправа. Кольорова форма.


Завдання. Розробіть проект Кольорова форма в середовищі Lazarus, у якому форма змінюватиме свої властивості — колір і розмір залежно від обраних перемикачів у групах Колір та Розмір.

Введіть команди зміни розміру форми за зразком:

if radioGroup2.ItemIndex=0 then 
 begin
  forml.height:=100; forml.width:=400; 
 end;

Для середнього розміру оберіть висоту 200, ширину 600, а для великого — 300, 800 відповідно.

Створюємо інтерфейс програми



Як бачите, в проекті використані об’єкти RadioGroup. Особливість їх в тому, що вони містять елементи RadioButton, кількість і назви (Caption) яких задає програміст на етапі конструювання RadioGroup. Давайте створимо RadioGroup Колір форми. Додаємо його на форму:


Властивість Caption встановлюємо Колір форми. Потім у властивості Items додаємо необхідну кількість RadioButton та встановлюємо потрібний текст відображення їх на формі:



Ось що в нас вийшло:


Те ж саме робимо і з RadioGroup2 Розмір форми.

В обробник події натискання на кнопку пишемо код для RadioGroup1 (колір форми):

  if RadioGroup1.ItemIndex=0 then Form1.color:=clred;
  if RadioGroup1.ItemIndex=1 then Form1.color:=clgreen;
  if RadioGroup1.ItemIndex=2 then Form1.color:=clblue;

Нагадую, що вибраний елемент RadioGroup1 змінює властивість ItemIndex на номер індекса вибраного елемента, який починається з 0. Тобто перший рядок програмного коду має таку дію: якщо вибраний перший елемент RadioGroup1 (він має ItemIndex 0 і напис червоний), то встановити колір форми червоний (clred).

З RadioGroup2 трішки складніше, адже при виборі відповідного елемента повинно виконатись дві дії – встановити відповідну висоту форми та ширину форми. А тут без begin та  end не обійтися. Тому програмний код матиме такий вигляд:

if RadioGroup2.ItemIndex=0 then
   begin
     form1.height:=120;
     form1.width:=400;
   end;

   if RadioGroup2.ItemIndex=1 then
   begin
     form1.height:=300;
     form1.width:=600;
   end;

   if RadioGroup2.ItemIndex=2 then
   begin
     form1.height:=400;
     form1.width:=800;
   end;   

Хотілося трішечки покращити програму стосовно культури, естетики програмування. 

Щоб при зміні розмірів форми  RadioGroup не скакали по формі, лишаючи некрасиві вільні місця, я б закріпив RadioGroup1 за лівим краєм форми, а RadioGroup2 – за правим, використовуючи чудову властивість будь-якого елемента керування, таку як  Anchors. Вона дозволяє закріплювати об’єкти за краями форми. При зміні розмірів форми закріплені елементи залишаються на краях форми. Встановлюємо для RadioGroup1 Left (лівий) та Top (верхній), а для RadioGroup2 Right (правий) та Top (верхній)

 



Тепер при зміні розмірів форми відповідні RadioGroup красиво розмістяться по краях форми.







Немає коментарів:

Дописати коментар