Додавання кнопки C + + Builder

Останній штрих в цьому прикладі – додавання на форму нової кнопки Створення кнопки не відрізняється від створення мітки або поля введення Але нам хотілося б знати про те, що користувач натискає кнопку Для цього нам потрібно вміти створювати обробник події натискання на кнопку і асоціювати цей обробник з подією OnClick

Object Inspector, звичайно, не працює для динамічно створених компонентів Як же ми тоді асоціюємо обробник з кнопкою Ну, якщо ви памятаєте приклад Scribble3 з глави 1, ми можемо модифікувати обробник для компонента під час роботи програми Якщо можна модифікувати, чому б не додати новий обробник Протипоказань до цього немає

Створіть обробник події OnClick для перемикача Створити нову кнопку і додайте в обробник наступний код:

void __fastcall TForm1::RadioButton3Click(TObject *Sender)

{

RemoveExistingFields()

FpButton = new TButton(this) FpButton-&gtParent = this

FpButton-&gtLeft = RadioButton1-&gtLeft FpButton-&gtWidth = 200

FpButton-&gtHeight = 20 FpButton-&gtTop =

RadioButton3-&gtTop + RadioButton3-&gtHeight + 20 FpButton-&gtVisible = true

FpButton-> Caption = Кнопка +1; FpButton-> OnClick = OnButtonClick

}

Знову ж, майже ніякої різниці між випадком кнопки і попередніми випадками Ми встановлюємо властивості (включаючи найважливіша властивість Parent) таким же чином, як і для поля введення і мітки Для кнопок нам потрібно властивість Caption: це текст, який зявляється на кнопці У цьому випадку ми просто присвоюємо цій властивості рядок «Кнопка +1»

Підсвічена рядок коду важлива для кнопки Тут ми присвоюємо наш обробник події для кнопки події OnClick обєкта-кнопки Єдина вимога до обробника – щоб він був потрібної сигнатури (в сенсі аргументів і значення, що повертається функцією) для події даного типу Для події OnClick метод повинен приймати один аргумент (Sender, тобто відправник повідомлення, типу TObject) і не повертати ніякого значення (тобто повертати

«Пусте значення», void) Так що ми реалізуємо простий обробник, вводячи наступний код у вихідний файл для форми:

void __fastcall TForm1::OnButtonClick( TObject *Sender )

{

MessageBox (NULL, Ви натиснули на кнопку”, Інформація, MB_OK)

}

Зауважте, що сигнатура цього обробника події підходить під сигнатуру, необхідну для обробника події натискання на кнопку Зауважте також, що у обробника вказаний модифікатор

__fastcall Цей модифікатор потрібно вказувати у всіх перевизначення (overrides) методів VCL За визначенням обробник події є перевизначенням поведінки компонента і тому вимагає директиви  fastcall

Не забудьте розкоментувати рядок з заголовного файлу з прототипом нашого методу OnButtonClick, а потім скомпілюйте і запустіть програму Коли ви запустите програму і встановіть перемикач Створити нову кнопку, то довга худа кнопка зявиться на формі Натиснувши на неї, ви отримаєте вікно з повідомленням, як на рис 44

Рис 44 Форма з результатом виклику динамічного обробника

Ну ось, тепер ви знаєте все, що потрібно для створення простого динамічного керуючого елемента, присвоювання його властивостям значень і обробки його подій Чи не правда, це було не так вже й важко

Джерело: Теллес М – Borland C + + Builder Бібліотека програміста – 1998

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*