Нижче встановіть кнопку, написавши на ній слово "Застосувати". Все, з дизайном закінчено, переходимо до програмування кнопки. Якщо ви ще не зберегли проект в нову папку, зробіть це зараз. Властивості Name форми, як зазвичай, дайте ім'я fMain, модулю - просто Main, всьому проекту в цілому - FormViewer.
Повернемося до кнопки. Клацніть двічі по ній, створивши процедуру обробки натиснення кнопки.
Процедура має наступний вигляд:
procedure TfMain.Button1Click (Sender: TObject);
// обробляємо компонент BorderIcons
if CheckBox1.Checked then fMain.BorderIcons: = fMain.BorderIcons + [biSystemMenu]
else fMain.BorderIcons: = fMain.BorderIcons - [biSystemMenu];
if CheckBox2.Checked then fMain.BorderIcons: = fMain.BorderIcons + [biMinimize]
else fMain.BorderIcons: = fMain.BorderIcons - [biMinimize];
if CheckBox3.Checked then fMain.BorderIcons: = fMain.BorderIcons + [biMaximize]
else fMain.BorderIcons: = fMain.BorderIcons - [biMaximize];
if CheckBox4.Checked then fMain.BorderIcons: = fMain.BorderIcons + [biHelp]
else fMain.BorderIcons: = fMain.BorderIcons - [biHelp];
// обробляємо компонент BorderStyle
case RadioGroup1.ItemIndex of
0. fMain.BorderStyle: = bsSizeable;
1. fMain.BorderStyle: = bsDialog;
2. fMain.BorderStyle: = bsNone;
3. fMain.BorderStyle: = bsSingle;
4. fMain.BorderStyle: = bsSizeToolWin;
5. fMain.BorderStyle: = bsToolWindow;
Розберемося з кодом. Спочатку ми обробляємо перший прапорець CheckBox:
if CheckBox1.Checked then fMain.BorderIcons: = fMain.BorderIcons + [biSystemMenu]
else fMain.BorderIcons: = fMain.BorderIcons - [biSystemMenu];
Якщо цей прапорець включений, його властивість Checked поверне Істину, і тоді до властивості форми BorderIcons буде додана константа [biSystemMenu]. Про константи, в тому числі і вбудованих, ми будемо говорити пізніше. Поки що важливо одне - якщо ми додаємо цю константу, то включаємо це значення в властивість BorderIcons.
Приклад взятий з вбудованого довідника Delphi. Поставте миготливий курсор всередині слова BorderIcons і натисніть
Таким же чином, ми обробляємо інші три компонента CheckBox.
Далі, йде обробка панелі RadioGroup. Оскільки тільки одна кнопка може бути включена, то властивість ItemIndex цієї панелі може мати тільки 6 значень, за кількістю кнопок: від 0 до 5. Тут найзручніше використовувати конструкцію case. Залежно від значення ItemIndex ми присвоюємо однойменне включеної кнопці значення властивості BorderStyle форми. От і все.
Збережіть приклад, скомпілюйте і подивіться, як працює програма. Залежно від обраних значень після натискання кнопки "Застосувати" змінюється зовнішній вигляд форми. У деяких випадках її розміри можна змінювати, розсуваючи мишею, в деяких - ні. У разі, якщо BorderStyle дорівнює значенню bsNone, пропадає і оборка вікна, і верхня системна рядок форми. Експериментуйте. Ця утиліта може виявитися корисною в подальшому, якщо ви бажаєте заздалегідь подивитися, які налаштування вибрати, щоб вікно вашої програми виглядало саме так. Наприклад, щоб ніхто не зміг змінювати його розміри, щоб були відсутні кнопки "Згорнути" і "Розгорнути" і т.п.