Програма Конвертор перераховує ціну з доларів у гривні. Демонструє використання компонентів 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(); // закрити форму додатку
}