ІІ-й спосіб
1. Командами File/Save as та File/Save Project as запишіть файли Unit1.cpp та Project1.bpr у папку для ІІ-го варіанта програми. Разом з ними будуть записані і інші файли, які мають відношення до програмного проекту.
2. Компоненти ComboBox1 та Edit1 вилучіть і замість них розташуйте на формі списки вибору ListBox1 та ListBox2:
3. У властивість Items компонента ListBox1 запишемо список валют:
USD
Euro
RusRuble
4. Під час вибору типу операції у ListBox1 помістимо список чисел (взятих із масиву Kv), які є значеннями обмінного курсу для відповідних валют. Для цього подію OnClick для RadioButton1 та RadioButton2 запрограмуємо таким чином:
void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
int I;
Label3->Caption="купуєте";
Label7->Caption="до оплати";
for (I=0; I<ListBox1->Items->Count; I++)
ListBox2->Items->Add(FloatToStr(Kv[I][0]));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton2Click(TObject *Sender)
{
int I;
Label3->Caption="продаєте";
Label7->Caption="до видачі";
for (I=0; I<ListBox1->Items->Count; I++)
ListBox2->Items->Add(FloatToStr(Kv[I][1]));
}
Властивість ListBox1->Items->Count зберігає кількість елементів списку ListBox1, індексація елементів списку розпочинається з нуля. Метод ListBox2->Items->Add дозволяє добавити новий елемент (рядок символів) до списку ListBox2. В останніх процедурах числа із першого та другого стовпців масиву Kv перетворюються у рядки символів і добавляються до властивості Items компоненти ListBox2.
Виконайте програму.
5. При виборі валюти у списку ListBox1 автоматично має виділятися у списку ListBox2 рядок із значенням обмінного курсу для вибраної валюти. Для цього запрограмуємо подію OnClick для ListBox1:
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
ListBox2->ItemIndex= ListBox1->ItemIndex;
}
В результаті виконання цього методу індекси активних (виділених) елементів у списках ListBox1 та ListBox2 стануть однаковими.
6. Метод для опрацювання події OnChange для Edit2 зробимо таким:
void __fastcall TForm1::Edit2Change(TObject *Sender)
{
if (RadioButton1->Checked)
Edit3->Text=FloatToStr(StrToInt(Edit2->Text)*
Kv[ListBox1->ItemIndex][0]);
else
Edit3->Text=FloatToStr(StrToInt(Edit2->Text)*
Kv[ListBox1->ItemIndex][1]);
}
7. Виконайте програму із середовища C++ Builder. Завантажте відповідний exe-файл із середовища ОС Widows.