:: Меню ::

Головна
Передмова
СЕРЕДОВИЩЕ РОЗРОБКИ C++ BUILDER
Початок роботи
Перший проект
ПРАКТИКУМ ПРОГРАМУВАННЯ
Графіка
Мультимедіа
Бази даних
Компонент програміста
Консольне застосування
Довідкова система
Створення настановного диска
Приклади програм
C++ Builder — короткий довідник
Книга для гостей
Контакти
Добавити у вибране

:: Друзі ::

 
Отзывы о каркасных домах и коттеджах, построенных компанией НАНОСФЕРА Большое спасибо всему коллективу фирмы "НАНОСФЕРА" за быстрое и качественное строительство нашего дома. Дом получился красивым и очень теплым. Нам очень нравится. сумки приобрести днепр интернет магазин кожаных сумок style zone кошельки клатчи женские

:: Лічильники ::

=

 

 

 

 

 

Подія і функція обробки події



Вид створеної форми підказує, як працює додаток. Очевидно, що користувач повинен ввести в поля редагування початкові дані і клацнути мишею на кнопці Обчислити. Клацання на зображенні командної кнопки — це приклад того, що в Windows називається подією.

Подія (Event) — це те, що відбувається під час роботи програми. У C++ Builder кожній події привласнено ім'я. Наприклад, клацання кнопкою миші — це подія Onclick подвійне клацання мишею — подія Ondb1click.

У таблиці. 2.9 приведені деякі події Windows.

Таблиця 2.9. Події


Подія

Відбувається

Onclick

При клацанні кнопкою миші

Ondb1click

При подвійному клацанні кнопкою миші

Onmousedown

При натисненні кнопки миші

Onmouseup

При відпуску кнопки миші

Onmousemove

При переміщенні миші

Onkeypress

При натисненні клавіші клавіатури

Onkeydown

При натисненні клавіші клавіатури. Події Onkeydown і Onkeypress — це події, що чергуються, повторюються, які відбуваються до тих пір, поки не буде відпущена утримувана клавіша (у цей момент відбувається подія Onkeyup)

Onkeyup

При відпуску натиснутої клавіші клавіатури

Oncreate

При створенні об'єкту (форми, елементу управління). Процедура обробки цієї події зазвичай використовується для ініціалізації змінних, виконання підготовчих дій

On Paint

При появі вікна на екрані на початку роботи програми; під час роботи програми після появи вікна (або його частини), яке було закрите іншим вікном або згорнуте

Onenter

При отриманні елементом управління фокусу

Onexit

При втраті елементом управління фокусу


Реакцією на подію має бути яка-небудь дія. У C++ Builder реакція на подію реалізується як функція обробки події. Таким чином, для того, щоб програма виконувала деяку роботу у відповідь на дії користувача, програміст повинен написати функцію обробки відповідної події. Слід звернути увагу на те, що значну частину обробки подій бере на себе компонент. Тому програміст повинен розробляти функцію обробки події тільки в тому випадку, якщо реакція на подію відрізняється від стандартної або не визначена. Наприклад, якщо по умові завдання обмежень на символи, що вводяться в поле Edit немає, то процедуру обробки події onkeypress писати не треба, оскільки під час роботи програми буде використана стандартна (прихована від програміста) процедура обробки цієї події.

Методику створення функцій обробки подій розглянемо на прикладі функції обробки події onclick для командної кнопки Обчислити.

Щоб приступити до створення функції обробки події, спочатку треба вибрати компонент, для якого створюється функція обробки події. Вибрати компонент можна у вікні Object Inspector або клацанням на зображенні компоненту у формі. Після цього у вікні Object Inspector потрібно вибрати вкладку Events (Події).

У лівій колонці вкладки Events (мал. 2.18) перераховані події, які може сприймати вибраний компонент (ім'я і тип компоненту вказані у верхній частині вікна). Якщо для події визначена функція обробки, то в правій колонці поряд з ім'ям події буде виведено ім'я цієї функції.

Для того, щоб створити функцію обробки події, потрібно зробити подвійне клацання мишею у вікні Object Inspector у полі функції обробки відповідної події (мал. 2.19). В результаті цього відкриється вікно редактора коди, в яке буде доданий шаблон функції обробки події, а у вікні Object Inspector поряд з ім'ям події з'явиться C++, що згенерувало Builder ім'я функції обробки події (мал. 2.19).



Мал. 2.18. На вкладці Events перераховані події, які може сприймати компонент (в даному випадку — командна кнопка)



Мал. 2.19. Шаблон функції обробки події, C++ Builder, що згенерував


C++ Builder привласнює функції обробки події ім'я, яке складається з двох частин. Перша частина імені ідентифікує форму, що містить об'єкт (компонент), для якого створена процедура обробки події. Друга частина імені ідентифікує сам об'єкт і подію. У нашому прикладі ім'я форми — Form1 ім'я командної кнопки — Button1 а ім'я події — Click.

У вікні редактора коди між фігурними дужками можна набирати інструкції, що реалізовують функцію обробки події.

У лістингу 2.1 приведений текст функції обробки події onclick для командної кнопки Обчислити. Звернете увагу на те, як представлена програма. Її загальний вигляд відповідає тому, як вона виглядає у вікні редактора коди: ключові слова виділені напівжирним шрифтом, коментарі — курсивом (виділення виконує редактор коди). Крім того, інструкції програми набрані з відступами відповідно до прийнятих в середовищі програмістів правил хорошого стилю.

Лістинг 2.1. Проста обробка події onclick на кнопці Обчислити

void__fastcall Tforml::buttonlclick(Tobject *Sender)
{
float u; // напруга
float r; // опір
float i; // струм

// отримати дані з полів введення 
u = Strtofloat(Editl->text); 
r = Strtofloat(Edit2->text);

// обчислити  струм 
i = u/r;

// вивести результат в полі влучні 
Label4->caption = "Струм : " +
 Floattostrf(i,ffgeneral,7,2)+ "А";
}

Функція Button1click виконує розрахунок сили струму і виводить результат розрахунку в полі Label4. Початкові дані вводяться з полів редагування Edit1 і Edit2 шляхом звернення до властивості Text. Властивість Text містить рядок символів, який ввів користувач. Щоб програма працювала правильно, користувач повинен ввести в кожне поле редагування ціле або дробове число в правильному форматі (при введенні дробового числа для розділення цілої і дробової частин треба використовувати кому). Оскільки поле редагування містить текст (властивість Text строкового типу), необхідно виконати перетворення рядка в число. Цю задачу вирішує функція strtofloat якою як параметр передається вміст поля редагування — значення властивості Text (Edit1->text — це вміст поля Edit1). Функція strtofloat перевіряє символи рядка, переданого їй як параметр, на допустимість і, якщо всі символи вірні, повертає значення, відповідне рядку, отриманому як параметр.

Після того, як початкові дані будуть поміщені в змінні u і rвиконується розрахунок.

Обчислена величина сили струму виводиться в полі Label4 шляхом надання значення властивості Caption. Для перетворення числа в рядок символів (властивість Caption— строкового типу) використовується функція Floattostrf.

У лістингу 2.2 приведена процедура обробки події onclick на командній кнопці Завершити. Створюється вона точно так, як і процедура обробки події onclick для командної кнопки Обчислити. В результаті клацання на кнопці Завершити програма повинна завершити роботу. Щоб це відбулося, треба закрити вікно програми. Робить це метод close.

Лістинг 2.2. Процедура обробки події Onclick на кнопці Завершити
void __fastcall Tforml::button2click(Tobject*sender) 
{
Forml->close(); 
}

 


Проститутки Хабаровска www.vminete.com Спб.
x

:: Наша кнопка ::

Отримати код:

Підтримайте наш сайт і розмістіть нашу кнопку на своєму ресурсі.


:: Реклама ::


:: Посилання ::

-


 

 

 


Copyright by Zvircom © 2009