Конвертор

Програма Конвертор перераховує ціну з доларів у гривні. Демонструє використання компонентів TextBox і Label для введення та відображення числових даних. Програма спроектована таким чином, що користувач може ввести в поле редагування тільки правильні дані (число). Форма програми приведена на рисунку.

// натиснення клавіш в полі Ціна
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
// код забороненого символу замінимо нулем, в результаті
// символ в полі редагування не появиться
 // Key — код натиснення клавіш
// перевіримо, чи є символ доступним
if (Key >= '0' && Key <= '9') // цифра
        return;
 
// глобальна змінна DecimalSeparator
// містить символ, використовуваний в якості роздільника
// при записі дробових чисел
if (Key == DecimalSeparator)
{
if ((Edit1->Text).Pos(DecimalSeparator) != 0)
           Key = 0; // роздільник вже введений
     return;
}
if (Key == VK_RETURN) // клавіша <Backspace>
     return;
 
if (Key == VK_RETURN) // клавіша <Enter>
{
Edit2->SetFocus();
     return;
}
 
// інші клавіші заборонені
Key = 0;
}
 
// натиснення клавіш в полі Курс
void __fastcall TForm1::Edit2KeyPress(TObject *Sender, char &Key)
{
     // код забороненого символу замінимо нулем, в результаті
// символ в полі редагування не появиться
 
// Key — код натиснення клавіш
// перевіримо, чи є символ доступним
if (Key >= '0' && Key <= '9') // цифра
        return;
 
// глобальна змінна DecimalSeparator
// містить символ, використовуваний в якості роздільника
// при записі дробових чисел
if (Key == DecimalSeparator)
{
if ((Edit2->Text).Pos(DecimalSeparator) != 0)
           Key = 0; // роздільник вже введений
     return;
}
 
if (Key == VK_RETURN) // клавіша <Backspace>
     return;
 
if (Key == VK_RETURN) // клавіша <Enter>
{
Button1->SetFocus();  // перехід на кнопку Перерахунок
// наступне натискання клавіші <Enter>
// активує процес розрахування грошей
     return;
}
 
// інші клавіші заборонені
Key = 0;
}
// клацання на кнопку Розрахунок
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    float usd; // ціна в доларах
    float k; // курс
    float grn; // ціна в гривнях
 
     // перевіримо, чи введені данні в поля Ціна та Курс
    if ((Edit1->Text).Length()==0 || (Edit2->Text).Length()==0)
    {
MessageDlg("Спочатку введіть ціну та курс", mtInformation, TMsgDlgButtons() << mbOK, 0);
           if ((Edit1->Text).Length()==0)
                Edit1->SetFocus(); // курсор в поле Ціна
           else
                Edit2->SetFocus(); // курсор в поле Курс
           return;
    };
     // введення вихідних даних
    usd = StrToFloat(Edit1->Text);
    k = StrToFloat(Edit2->Text);
     // розрахунок
    grn = usd * k;
 
     // вивід результату
Label4->Caption = FloatToStrF(usd, ffGeneral, 7, 2) + "$ = " +FloatToStrF(grn, ffGeneral, 7, 2) + " грн.";
}
// клацання на кнопку Завершити
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1->Close(); // закрити форму додатку
}

Завантажити готовий проект

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *