Хелпикс

Главная

Контакты

Случайная статья





void fastcall TForml::EditChange(TObject *Sender)



return;

// остальные клавиши запрещены

Key = 0 ; // не отображать символ

// Содержимое поля Editl изменилось

void fastcallTForml::EditlChange(TObject *Sender)

{

// проверим, есть ли в поле Editl исходные данные

if( (Editl->Text).Length() == 0)

Buttonl->Enabled = False;// кн. Пересчет недоступна

elseButtonl->Enabled = True;// кн. Пересчет доступна

Label2->Caption = "";

// щелчок на кнопке Пересчет

void fastcallTForml::ButtonlClick(TObject *Sender)

{

doublefunt; // вес в фунтах

doublekg; // вес в килограммах

// кнопка Пересчет доступна только в том случае,

// если в поле Editl есть данные. Поэтому,

// наличие в поле информации можно не проверять.

funt = StrToFloat(Editl->Text);

kg = funt * 0.4995;

Label2->Caption = FloatToStrF(funt,ffGeneral,5,2) +

" ф. - это " +

FloatToStrF(kg,ffGeneral,5,2) + " кг";

}

 

Пример выполнения:


 

Задача №3 Сила тока:

Блок-схема:

Текст программы:

/ / щелчок на кнопке Вычислить

void fastcallTForml::ButtonlClick(TObject *Sender)

floatu; // напряжение

floatr; // сопротивление

float i; //ток

// проверим, введены ли данные в поля Напряжение и

// Сопротивление

if( ((Editl->Text).Length() ==0) ||

((Edit2->Text).Length() == 0))

{

MessageDlg("Надо ввести напряжение и сопротивление",

mtlnformation, TMsgDlgButtons() << mbOK, 0) ;

if ((Editl->Text).Length() == 0)

Editl->SetFocus(); // курсор в поле Напряжение

else

Edit2->SetFocusО; // курсор в поле Сопротивление

return;

// получить данные из полей ввода

u = StrToFloat(Editl->Text);

г = StrToFloat(Edit2->Text);

// вычислить ток

try

{

i = u/r;

}

catch(EZeroDivide &e)

{

ShowMessage("Величина сопротивления не должна быть"

"равна нулю");

Edit2->SetFocus(); // курсор в поле Сопротивление

return;

// вывести результат в поле Labels

Label4->Caption - "Ток : " +

FloatToStrF(i,ffGeneral,7,2) + " A";

// нажатие клавиши в поле Напряжение

// коды запрещенных клавиш заменим нулем, в результате

// символы этих клавиш в поле редактирования не появятся

void fastcallTForml::EditlKeyPress(TObject *Sender,

char&Key)

{

// Key - код нажатой клавиши

// проверим, является ли символ допустимым

if( ( Key >= '0') && ( Key <= '9' ) ) // цифра

return;

// Глобальная переменная DecimalSeparator

// содержит символ, используемый в качестве разделителя

// при записи дробных чисел

if( Key == DecimalSeparator)

{

if( (Editl->Text).Pos(DecimalSeparator) != 0 )

Key = 0 ; // разделитель уже введен

return;

if(Key == VK_BACK) // клавиша <Backspace>

return;

if( Key == VK_RETURN) // клавиша <Enter>

Edit2->SetFocus();

return;

// остальные клавиши запрещены

Key= 0; // не отображать символ

// нажатие клавиши в поле Сопротивление

void fastcallTForml::Edit2KeyDown(TObject *Sender,

WORD &Key,TShiftState Shift)

{

if( ( Key >= '0') && ( Key <= '9' ) ) // цифра

return;

if( Key == DecimalSeparator) {

if( (Edit2->Text).Pos(DecimalSeparator) != 0 )

Key= 0; // разделитель уже введен

return;

if(Key == VK_BACK) // клавиша <Backspace>

return;

if( Key == VK_RETURN) // клавиша <Enter>

I

Buttonl->SetFocus(); // переход к кнопке Вычислить

// повторное нажатие клавиши <Enter>

// активизирует процесс вычисления тока

// см. ButtonlClick

return;

// остальные клавиши запрещены

Key= 0 ; // не отображать символ

У

// щелчок на кнопке Завершить

void fastcallTForml::Button2Click(TObject 'Sender)

Forml->Close(); // закрыть форму приложения

/* Процедура EditlChange обрабатывает событие Change

как поля Editl, так и поля Edit2.

Сначала-надо создать процедуру обработки события Change

для поля Editl, затем - в строке события Change компонента

Edit2 щелкнуть на значке раскрывающегося списка и выбрать

EditlChange. */

void fastcall TForml::EditChange(TObject *Sender)

{



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.