ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.09.2024

Просмотров: 47

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

AB

 

 

 

F

 

 

 

D

 

 

Y

P

B

Y

 

 

 

 

 

 

w

Click

 

 

 

w

 

 

 

w.

 

 

 

A

Tran

sf

 

 

 

 

 

 

 

 

 

F Tran

sf

 

 

 

 

 

 

 

 

 

 

 

 

D

 

 

 

 

 

 

 

or

e

 

 

 

Y

P

 

 

 

 

or

e

 

 

 

 

m

 

B

Y

 

 

 

 

 

 

 

 

m

 

 

buy

 

r

B

 

 

 

 

 

 

buy

r

 

 

 

2

 

 

 

 

 

 

 

2

 

 

 

0

 

 

 

 

 

 

 

 

0

 

to

 

 

 

 

.

A

 

 

 

 

 

 

 

to

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

here

 

 

 

 

 

 

 

 

 

 

 

 

here

 

 

 

 

 

 

 

 

 

кнопок натиснув користувач. На мал. 2.37 приведено вікно, виведене в

 

 

 

 

 

Click

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

результаті

 

 

 

 

m

 

 

 

 

 

m

 

w

 

 

 

 

 

 

 

 

 

 

 

 

o

виконання інструкції

 

 

 

w

w.

 

 

 

 

 

o

 

 

 

c

 

 

 

 

 

 

 

 

 

 

c

 

 

 

.

 

 

 

 

 

 

 

 

 

 

.

 

 

BBYY

 

 

 

 

 

 

 

 

 

 

A B BYY

 

 

 

Messagedig("Файл c:\xtemp\\test.txt буде видалений.",

mtwarning, Tmsgdlgbuttons() « mbok « mbcancel, 0);

Мал. 2.37. Приклад вікна повідомлення

Значення функції Messagedig — число, перевіривши значення якого можна визначити, вибором якої командної кнопки був завершений діалог. У загальному вигляді

звернення до функції Messagedig виглядає так:

Вибор:= Messagedig(Повідомлення, Тип, Кнопки, Контекст справки)

де:

§повідомлення — текст повідомлення;

§Тип — тип повідомлення. Повідомлення може бути інформаційним, застережливим або повідомленням про критичну помилку. Кожному типу повідомлення

відповідає певний значок. Тип повідомлення задається іменованою константою

(таблиця. 2.13);

§кнопки — кнопки, що відображаються у вікні повідомлення. Задаються операцією включення в множину елементів — констант (таблиця. 2.14).

§контекст справки — параметр, який визначає розділ довідкової інформації, який з'явиться на екрані, якщо користувач натисне клавішу<F1>. Якщо виведення

довідкової інформації не передбачене, то значення параметра має дорівнювати нулю.

Таблиця 2.13. Константи, що визначають тип повідомлення

 

 

 

 

 

 

 

 

Константа

 

Тип повідомлення

 

Значок

 

 

 

 

 

 

 

 

 

MtWarning

 

Увага

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MtError

 

Помилка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Mtlnformation

 

Інформація

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MtConfirmation

 

Підтвердження

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MtCustom

 

Звичайне

 

Без значка

 

 

 

 

 

 

 

 

38


AB

 

 

 

 

 

F Tran

sf

 

 

 

 

 

D

 

 

 

 

 

Y

P

 

 

 

 

or

e

B

Y

 

 

 

 

 

 

 

m

 

 

 

 

 

 

buy

r

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

to

 

 

.

 

 

 

 

 

 

here

 

 

 

 

 

 

 

Click

 

 

 

 

w

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

w

w.

 

 

 

 

o

 

 

 

 

 

 

 

.

 

 

 

 

 

 

A BBYY

c

 

 

 

 

 

 

 

 

Таблиця 2.14. Константи, що визначають кнопки у вікні повідомлення

Константа

 

Кнопка

 

Константа

 

Кнопка

mbYes

 

 

 

 

 

Abort

 

Yes

 

mbAbort

 

mbNo

 

 

 

 

 

Retry

 

No

 

mbRetry

 

mbOk

 

 

 

 

 

Ignore

 

OK

 

mblgnore

 

mbCancel

 

 

 

 

 

All

 

Cancel

 

mbAll

 

mbHelp

 

 

 

 

 

 

 

Help

 

 

 

 

AB

 

 

 

 

 

F Tran

sf

 

 

 

 

 

D

 

 

 

 

 

Y

P

 

 

 

 

or

e

B

Y

 

 

 

 

 

 

 

m

 

 

 

 

 

 

buy

r

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

to

 

 

.

 

 

 

 

 

 

here

 

 

 

 

 

 

 

Click

 

 

 

 

w

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

w

w.

 

 

 

 

o

 

 

 

 

 

 

 

.

 

 

 

 

 

 

A B BYY

c

 

 

 

 

 

 

 

 

Окрім приведених констант можна використовувати константиmbokcancel,

 

mbyesnocancel іmbabortretryignore. Ці

константи

визначають

найбільш

часто

використовувані в діалогових вікнах комбінації командних кнопок.

 

 

Значення, повертане функцією Messagedig (таблиця. 2.15)дозволяє визначити, яка з командних кнопок була натиснута користувачем.

Таблиця 2.15. Значення функції Messagedlg

 

 

 

 

 

 

Значення функції Messagedlg

 

Діалог завершений натисненням кнопки

 

 

 

 

 

 

 

mrAbort

 

Abort

 

 

 

 

 

 

 

mrYes

 

Yes

 

 

 

 

 

 

 

mrOk

 

Ok

 

 

 

 

 

 

 

mrRetry

 

Retry

 

 

 

 

 

 

 

mrNo

 

No

 

 

 

 

 

 

 

mrCancel

 

Cancel

 

 

 

 

 

 

 

mrlgnore

 

Ignore

 

 

 

 

 

 

 

mrAll

 

All

 

 

 

 

 

 

2.15 Внесення змін

Після декількох запусків програми "Сила струму" виникає бажання удосконалити

програму, внести до неї зміни. Наприклад, такі, щоб після введення напруги в результаті натиснення клавіші <Enter> курсор переходив в полі Опір, а після введення

опору в результаті натиснення цієї ж клавіші виконувався розрахунок. Крім того, було б непогано, щоб користувач міг вводити в поля редагування тільки числа. Щоб внести

зміни до програми, потрібно запустити C++ Builder і відкрити відповідний проект. Зробити це можна звичайним способом, вибравши в меню File команду Open Project.

Можна також скористатися командою Reopen з меню File. При виборі команди Reopen відкривається список проектів, над якими працював програміст останнім часом. У

лістингу 2.4 приведена програма "Сила струму", до якої внесені зміни: додані функції

39


AB

 

 

 

F

 

 

 

D

 

 

Y

P

B

Y

 

 

 

 

 

 

w

Click

 

 

 

w

 

 

 

w.

 

 

 

A

Tran

sf

 

 

 

 

 

 

 

 

 

 

 

 

F Tran

sf

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D

 

 

 

 

 

 

 

or

e

 

 

 

 

 

 

Y

P

 

 

 

 

or

e

 

 

 

 

m

 

 

 

 

B

Y

 

 

 

 

 

 

 

 

m

 

 

buy

 

r

 

 

 

B

 

 

 

 

 

 

buy

r

 

 

 

2

 

 

 

 

 

 

 

 

 

 

2

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

0

 

to

 

 

 

 

.

 

 

 

A

 

 

 

 

 

 

 

to

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

here

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

here

 

 

 

 

 

 

 

 

 

обробки

подій OnKeyPress для

компонентів Edit1 і

Edit2. Щоб додати

 

 

 

 

 

Click

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в програму

 

 

 

m

 

 

 

 

 

m

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

o

функцію

обробки події, треба у

вікніObject Inspector

вибрати компонент,

 

 

 

w

 

 

 

 

 

 

o

 

 

 

c

 

для якого

 

 

c

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

w.

 

 

.

 

 

BBYY

 

 

 

 

 

 

 

 

 

 

 

 

 

A B BYY

 

 

 

потрібно створити функцію обробки події, на вкладці Events вибрати подію і зробити подвійне клацання в полі поряд з ім'ям події. C++ Builder сформує шаблон функції обробки події. Після цього можна вводити інструкції, що реалізовують функцію.

Лістинг 2.4. Функції обробки подій на компонентах форми програми "Сила струму"

// клацання на кнопці Обчислити

void__fastcall TForm1::Button1Click(TObject *Sender)

{

float u; // напруга float r; // опір float i; // струм

// перевіримо, чи введені дані в поля Напруга і Опір

if ( ((Edit1->Text).Length() == 0) || ((Edit2->Text).Length() ==0))

{

Messagedlg("Haдo ввести напругу і опір" mtlnformation, Tmsgdlgbuttons() << mbok, 0); if ((Editl->Text).Length() == 0) Edit1->SetFocus(); // курсор в полі Напруга else

Edit2->SetFocus(); // курсор в полі Опір return; }; // отримати дані з полів введення

u = StrToFloat(Editl->Text);

r = StrToFloat(Edit2->Text); // обчислити силу струму try

{

i = u/r;

}

catch (Ezerodivide &e)

40



AB

 

 

 

 

 

F Tran

sf

 

 

 

 

 

D

 

 

 

 

 

Y

P

 

 

 

 

or

e

B

Y

 

 

 

 

 

 

 

m

 

 

 

 

 

 

buy

r

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

to

 

 

.

 

 

 

 

 

 

here

 

 

 

 

 

 

 

Click

 

 

 

 

w

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

w

w.

 

 

 

 

o

 

 

 

 

 

 

 

.

 

 

 

 

 

 

A BBYY

c

 

 

 

 

 

 

 

 

{

Showmessage("Величина опору не має дорівнювати нулю"); Edit2->setfocus(); // курсор в полі Опір

return;

}

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

AB

 

 

 

 

 

F Tran

sf

 

 

 

 

 

D

 

 

 

 

 

Y

P

 

 

 

 

or

e

B

Y

 

 

 

 

 

 

 

m

 

 

 

 

 

 

buy

r

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

to

 

 

.

 

 

 

 

 

 

here

 

 

 

 

 

 

 

Click

 

 

 

 

w

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

w

w.

 

 

 

 

o

 

 

 

 

 

 

 

.

 

 

 

 

 

 

A B BYY

c

 

 

 

 

 

 

 

 

}

// натиснення клавіші в полі Напруга

void __fastcall Tforml::editlkeypress(Tobject *Sender, char Skey)

{

//коду заборонених клавіш замінимо нулем, в результаті

//символи цих клавіш в полі редагування не з'являться

//Кеу — код натиснутої клавіші

//перевіримо, чи є символ допустимим

if ( ( Кеу >= '0') && ( Кеу <= '9'})

//цифра return;

//Глобальна змінна Decimalseparator

//містить символ, використовуваний як роздільник

//при записі дробових чисел

if ( Кеу == Decimalseparator)

{

if ( (Editl-xtext).Pos(Decimalseparator) != 0)

Кеу =0; // роздільник вже введений return;

}

41