Компонент radiogroup - студопедія

Нижче встановіть кнопку, написавши на ній слово "Застосувати". Все, з дизайном закінчено, переходимо до програмування кнопки. Якщо ви ще не зберегли проект в нову папку, зробіть це зараз. Властивості 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 і натисніть . Вийде контекстний довідник з цією командою. Якщо вам буде запропоновано вибрати між CLX і VCL. вибирайте останню (Visual Components Library - Бібліотека візуальних компонентів). Далі оберіть пункт "Delphi example" (Приклад для Delphi). У показаному в довідці прикладі відключається кнопка "Розгорнути вікно".

Таким же чином, ми обробляємо інші три компонента CheckBox.

Далі, йде обробка панелі RadioGroup. Оскільки тільки одна кнопка може бути включена, то властивість ItemIndex цієї панелі може мати тільки 6 значень, за кількістю кнопок: від 0 до 5. Тут найзручніше використовувати конструкцію case. Залежно від значення ItemIndex ми присвоюємо однойменне включеної кнопці значення властивості BorderStyle форми. От і все.

Збережіть приклад, скомпілюйте і подивіться, як працює програма. Залежно від обраних значень після натискання кнопки "Застосувати" змінюється зовнішній вигляд форми. У деяких випадках її розміри можна змінювати, розсуваючи мишею, в деяких - ні. У разі, якщо BorderStyle дорівнює значенню bsNone, пропадає і оборка вікна, і верхня системна рядок форми. Експериментуйте. Ця утиліта може виявитися корисною в подальшому, якщо ви бажаєте заздалегідь подивитися, які налаштування вибрати, щоб вікно вашої програми виглядало саме так. Наприклад, щоб ніхто не зміг змінювати його розміри, щоб були відсутні кнопки "Згорнути" і "Розгорнути" і т.п.

Схожі статті