⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fincalu.cpp

📁 条码控件: 一维条码控件 二维条码控件 PDF417Barcode MaxiCodeBarcode
💻 CPP
📖 第 1 页 / 共 2 页
字号:

void __fastcall TFinCalForm::GoBtnClick(TObject *Sender)
{
  long double FR = 0;
  String SR = "";
  switch (Functions->ItemIndex) {
    case 0  : FR = AccruedInterestMaturity(DateVar[0], DateVar[1], ExtVar[0],
                 ExtVar[1], BasVar);
              break;
    case 1  : FR = AccruedInterestPeriodic(DateVar[0], DateVar[1], DateVar[2],
                 ExtVar[0], ExtVar[1], FreqVar, BasVar);
              break;
    case 2  : FR = BondDuration(DateVar[0], DateVar[1], ExtVar[0], ExtVar[1],
                 FreqVar, BasVar);
              break;
    case 3  : FR = BondPrice(DateVar[0], DateVar[1], ExtVar[0], ExtVar[1],
                 ExtVar[2], FreqVar, BasVar);
              break;
    case 4  : FR = CumulativeInterest(ExtVar[0], IntVar[0], ExtVar[1], IntVar[1],
                 IntVar[2], FreqVar, TimVar);
              break;
    case 5  : FR = CumulativePrincipal(ExtVar[0], IntVar[0], ExtVar[1], IntVar[1],
                 IntVar[2], FreqVar, TimVar);
              break;
    case 6  : FR = DecliningBalance(ExtVar[0], ExtVar[1], IntVar[0], IntVar[1],
                 IntVar[2]);
              break;
    case 7  : FR = DiscountRate(DateVar[0], DateVar[1], ExtVar[0], ExtVar[1],
                 BasVar);
              break;
    case 8  : FR = DollarToDecimal(ExtVar[0], IntVar[0]);

              break;
    case 9  : SR = DollarToDecimalText(ExtVar[0]);

              break;
    case 10 : FR = DollarToFraction(ExtVar[0], IntVar[0]);

              break;
    case 11 : SR = DollarToFractionStr(ExtVar[0], IntVar[0]);

              break;
    case 12 : FR = EffectiveInterestRate(ExtVar[0], FreqVar);

              break;
    case 13 : FR = FutureValue(ExtVar[0], IntVar[0], ExtVar[1], ExtVar[2],
                 FreqVar, TimVar);
              break;
    case 14 : FR = FutureValueSchedule16(ExtVar[0], ValArray, IntVar[0]);

              break;
    case 15 : FR = InterestRate(IntVar[0], ExtVar[0], ExtVar[1], ExtVar[2],
                 FreqVar, TimVar, ExtVar[3]);
              break;
    case 16 : FR = InternalRateOfReturn16(ValArray, IntVar[0], ExtVar[0]);

              break;
    case 17 : if (IsCardValid(StrVar))
                SR = "Valid card number";
              else
                SR = "Invalid card number";
              break;
    case 18 : FR = ModifiedDuration(DateVar[0], DateVar[1], ExtVar[2],
                 ExtVar[1], FreqVar, BasVar);
              break;
    case 19 : FR = ModifiedIRR16(ValArray, IntVar[0], ExtVar[0], ExtVar[1]);

              break;
    case 20 : FR = NetPresentValue16(ExtVar[0], ValArray, IntVar[0]);

              break;
    case 21 : FR = NominalInterestRate(ExtVar[0], FreqVar);

              break;
    case 22 : FR = NonperiodicIRR16(ValArray, DateArray, IntVar[0], ExtVar[0]);

              break;
    case 23 : FR = NonperiodicNPV16(ExtVar[0], ValArray, DateArray, IntVar[0]);

              break;
    case 24 : FR = Payment(ExtVar[0], IntVar[0], ExtVar[1], ExtVar[2],
                 FreqVar, TimVar);
              break;
    case 25 : FR = PresentValue(ExtVar[0], IntVar[0], ExtVar[1], ExtVar[2],
                 FreqVar, TimVar);
              break;
    case 26 : FR = ReceivedAtMaturity(DateVar[0], DateVar[1], ExtVar[0],
                 ExtVar[1], BasVar);
              break;
    case 27 : FR = RoundToDecimal(ExtVar[0], IntVar[0], BoolVar);

              break;
    case 28 : FR = TBillEquivYield(DateVar[0], DateVar[1], ExtVar[0]);

              break;
    case 29 : FR = TBillPrice(DateVar[0], DateVar[1], ExtVar[0]);

              break;
    case 30 : FR = TBillYield(DateVar[0], DateVar[1], ExtVar[0]);

              break;
    case 31 : FR = VariableDecliningBalance(ExtVar[0], ExtVar[1], IntVar[0],
                 ExtVar[2], ExtVar[3], ExtVar[4], BoolVar);
              break;
    case 32 : FR = YieldPeriodic(DateVar[0], DateVar[1], ExtVar[0], ExtVar[1],
                 ExtVar[2], FreqVar, BasVar);
              break;
    case 33 : FR = YieldDiscounted(DateVar[0], DateVar[1], ExtVar[0],
                 ExtVar[1], BasVar);
              break;
    case 34 : FR = YieldMaturity(DateVar[0], DateVar[1], DateVar[2], ExtVar[0],
                 ExtVar[1], BasVar);
              break;
  }
  FResult->Text = FloatToStr(FR);
  SResult->Text = SR;
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::FunctionsClick(TObject *Sender)
{
  DisableFields();
  switch (Functions->ItemIndex) {
    case 0  : SetupAccruedInterestMaturity();  break;
    case 1  : SetupAccruedInterestPeriodic();  break;
    case 2  : SetupBondDuration();  break;
    case 3  : SetupBondPrice();  break;
    case 4  : SetupCumulativeInterest();  break;
    case 5  : SetupCumulativePrincipal();  break;
    case 6  : SetupDecliningBalance();  break;
    case 7  : SetupDiscountRate();  break;
    case 8  : SetupDollarToDecimal();  break;
    case 9  : SetupDollarToDecimalText();  break;
    case 10 : SetupDollarToFraction();  break;
    case 11 : SetupDollarToFractionStr();  break;
    case 12 : SetupEffectiveInterestRate();  break;
    case 13 : SetupFutureValue();  break;
    case 14 : SetupFutureValueSchedule();  break;
    case 15 : SetupInterestRate();  break;
    case 16 : SetupInternalRateOfReturn();  break;
    case 17 : SetupIsCardValid();  break;
    case 18 : SetupModifiedDuration();  break;
    case 19 : SetupModifiedIRR();  break;
    case 20 : SetupNetPresentValue();  break;
    case 21 : SetupNominalInterestRate();  break;
    case 22 : SetupNonperiodicIRR();  break;
    case 23 : SetupNonperiodicNPV();  break;
    case 24 : SetupPayment();  break;
    case 25 : SetupPresentValue();  break;
    case 26 : SetupReceivedAtMaturity();  break;
    case 27 : SetupRoundToDecimal();  break;
    case 28 : SetupTBillEquivYield();  break;
    case 29 : SetupTBillPrice();  break;
    case 30 : SetupTBillYield();  break;
    case 31 : SetupVariableDecliningBalance();  break;
    case 32 : SetupYieldPeriodic();  break;
    case 33 : SetupYieldDiscounted();  break;
    case 34 : SetupYieldMaturity();  break;
  }
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::DisableFields()
{
  E1Edit->Enabled = false;
  E1Edit->Color = clWhite;
  E2Edit->Enabled = false;
  E2Edit->Color = clWhite;
  E3Edit->Enabled = false;
  E3Edit->Color = clWhite;
  E4Edit->Enabled = false;
  E4Edit->Color = clWhite;
  E5Edit->Enabled = false;
  E5Edit->Color = clWhite;
  I1Edit->Enabled = false;
  I1Edit->Color = clWhite;
  I2Edit->Enabled = false;
  I2Edit->Color = clWhite;
  I3Edit->Enabled = false;
  I3Edit->Color = clWhite;
  I4Edit->Enabled = false;
  I4Edit->Color = clWhite;
  I5Edit->Enabled = false;
  I5Edit->Color = clWhite;
  D1Edit->Enabled = false;
  D1Edit->Color = clWhite;
  D2Edit->Enabled = false;
  D2Edit->Color = clWhite;
  D3Edit->Enabled = false;
  D3Edit->Color = clWhite;
  D4Edit->Enabled = false;
  D4Edit->Color = clWhite;
  D5Edit->Enabled = false;
  D5Edit->Color = clWhite;
  DAEdit->Enabled = false;
  DAEdit->Color = clWhite;
  VAEdit->Enabled = false;
  VAEdit->Color = clWhite;
  StrEdit->Enabled = false;
  StrEdit->Color = clWhite;
  TimEdit->Enabled = False;
  TimEdit->Color = clWhite;
  BasEdit->Enabled = False;
  BasEdit->Color = clWhite;
  FreqEdit->Enabled = False;
  FreqEdit->Color = clWhite;
  BoolEdit->Enabled = false;
  BoolEdit->Color = clWhite;
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::ExtEditExit(TObject *Sender)
{
  TEdit* edit = (TEdit*) Sender;
  ExtVar[edit->Tag] = edit->Text.ToDouble();
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::IntEditExit(TObject *Sender)
{
  TEdit* edit = (TEdit*) Sender;
  IntVar[edit->Tag] = edit->Text.ToInt();
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::DateEditExit(TObject *Sender)
{
  TEdit* edit = (TEdit*) Sender;
  DateVar[edit->Tag] = DateStringToStDate("mm/dd/yy", edit->Text, 1920);
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::StrEditExit(TObject *Sender)
{
  TEdit* edit = (TEdit*) Sender;
  StrVar = edit->Text;
}
//---------------------------------------------------------------------------

void __fastcall TFinCalForm::DAEditExit(TObject *Sender)
{
  for (int i=0; i<IntVar[0]; i++)
    DateArray[i] = DateStringToStDate("mm/dd/yy", DAEdit->Cells[0][i], 1950);
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::DAEditEnter(TObject *Sender)
{
  DAEdit->Row = 0;
  DAEdit->Col = 0;
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::VAEditEnter(TObject *Sender)
{
  VAEdit->Row = 0;
  VAEdit->Col = 0;
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::VAEditExit(TObject *Sender)
{
  for (int i=0; i<IntVar[0]; i++)
    ValArray[i] = VAEdit->Cells[0][i].ToDouble();
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::FreqEditExit(TObject *Sender)
{
  switch (FreqEdit->ItemIndex) {
    case 0: FreqVar = fqAnnual;  break;
    case 1: FreqVar = fqSemiAnnual;  break;
    case 2: FreqVar = fqQuarterly;  break;
    case 3: FreqVar = fqMonthly;  break;
  }
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::BasEditExit(TObject *Sender)
{
  switch(BasEdit->ItemIndex) {
    case 0: BasVar = BasisNASD;  break;
    case 1: BasVar = BasisActAct;  break;
    case 2: BasVar = BasisAct360;  break;
    case 3: BasVar = BasisAct365;  break;
    case 4: BasVar = BasisEur30360;  break;
  }
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::TimEditExit(TObject *Sender)
{
  switch (TimEdit->ItemIndex) {
    case 0: TimVar = ptEndOfPeriod;  break;
    case 1: TimVar = ptStartOfPeriod;  break;
  }
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::BoolEditExit(TObject *Sender)
{
  BoolVar = BoolEdit->Checked;
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::FormCreate(TObject *Sender)
{
  for (int i=0; i<5; i++) {
    ExtVar[i] = 0;
    DateVar[i] = CurrentDate();
    IntVar[i] = 0;
  }
  E1Edit->Text = FloatToStr(ExtVar[0]);
  E2Edit->Text = FloatToStr(ExtVar[1]);
  E3Edit->Text = FloatToStr(ExtVar[2]);
  E4Edit->Text = FloatToStr(ExtVar[3]);
  E5Edit->Text = FloatToStr(ExtVar[4]);
  I1Edit->Text = IntToStr(IntVar[0]);
  I2Edit->Text = IntToStr(IntVar[1]);
  I3Edit->Text = IntToStr(IntVar[2]);
  I4Edit->Text = IntToStr(IntVar[3]);
  I5Edit->Text = IntToStr(IntVar[4]);
  D1Edit->Text = StDateToDateString("mm/dd/yy", DateVar[0], true);
  D2Edit->Text = StDateToDateString("mm/dd/yy", DateVar[1], true);
  D3Edit->Text = StDateToDateString("mm/dd/yy", DateVar[2], true);
  D4Edit->Text = StDateToDateString("mm/dd/yy", DateVar[3], true);
  D5Edit->Text = StDateToDateString("mm/dd/yy", DateVar[4], true);
  DisableFields();
  for (int i=0; i<30; i++) {
    ValArray[i] = 0;
    DateArray[i] = CurrentDate();
  }
  TimEdit->ItemIndex = 0;
  TimVar = ptEndOfPeriod;
  BasEdit->ItemIndex = 0;
  BasVar = BasisNASD;
  FreqEdit->ItemIndex = 0;
  FreqVar = fqAnnual;
  BoolEdit->Checked = false;
  BoolVar = false;
  Application->HintPause = 250;
  Application->HintColor = clAqua;
}
//---------------------------------------------------------------------------
void __fastcall TFinCalForm::BitBtn1Click(TObject *Sender)
{
  Close();	
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -