/[projects]/dao/DelphiScanner/Components/tpsystools_4.04/examples/Delphi/FINCALU.pas
ViewVC logotype

Contents of /dao/DelphiScanner/Components/tpsystools_4.04/examples/Delphi/FINCALU.pas

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2671 - (show annotations) (download)
Tue Aug 25 18:15:15 2015 UTC (8 years, 10 months ago) by torben
File size: 20504 byte(s)
Added tpsystools component
1 (* ***** BEGIN LICENSE BLOCK *****
2 * Version: MPL 1.1
3 *
4 * The contents of this file are subject to the Mozilla Public License Version
5 * 1.1 (the "License"); you may not use this file except in compliance with
6 * the License. You may obtain a copy of the License at
7 * http://www.mozilla.org/MPL/
8 *
9 * Software distributed under the License is distributed on an "AS IS" basis,
10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11 * for the specific language governing rights and limitations under the
12 * License.
13 *
14 * The Original Code is TurboPower SysTools
15 *
16 * The Initial Developer of the Original Code is
17 * TurboPower Software
18 *
19 * Portions created by the Initial Developer are Copyright (C) 1996-2002
20 * the Initial Developer. All Rights Reserved.
21 *
22 * Contributor(s):
23 *
24 * ***** END LICENSE BLOCK ***** *)
25
26 unit Fincalu;
27
28 interface
29
30 uses
31 Windows, Messages, SysUtils, Controls, Classes, Forms, StdCtrls, Buttons,
32 ExtCtrls, Grids, Graphics,
33
34 StFin, StDate, StDateSt;
35
36 type
37 TFinCalForm = class(TForm)
38 Functions: TRadioGroup;
39 GroupBox1: TGroupBox;
40 Label2: TLabel;
41 Label4: TLabel;
42 Label5: TLabel;
43 Label6: TLabel;
44 Label7: TLabel;
45 Label3: TLabel;
46 Label1: TLabel;
47 Label20: TLabel;
48 Arrays: TGroupBox;
49 Label8: TLabel;
50 Label9: TLabel;
51 StrEdit: TEdit;
52 Panel1: TPanel;
53 GoBtn: TButton;
54 SResult: TEdit;
55 BitBtn1: TBitBtn;
56 E1Edit: TEdit;
57 E2Edit: TEdit;
58 E3Edit: TEdit;
59 E4Edit: TEdit;
60 I1Edit: TEdit;
61 I2Edit: TEdit;
62 I3Edit: TEdit;
63 I4Edit: TEdit;
64 FResult: TEdit;
65 VAEdit: TStringGrid;
66 DAEdit: TStringGrid;
67 D1Edit: TEdit;
68 D2Edit: TEdit;
69 D3Edit: TEdit;
70 D4Edit: TEdit;
71 Label10: TLabel;
72 FreqEdit: TComboBox;
73 BasEdit: TComboBox;
74 TimEdit: TComboBox;
75 E5Edit: TEdit;
76 I5Edit: TEdit;
77 D5Edit: TEdit;
78 Label13: TLabel;
79 BoolEdit: TCheckBox;
80
81 procedure SetupAccruedInterestPeriodic;
82 procedure SetupAccruedInterestMaturity;
83 procedure SetupCumulativeInterest;
84 procedure SetupCumulativePrincipal;
85 procedure SetupDiscountRate;
86 procedure SetupEffectiveInterestRate;
87 procedure SetupNominalInterestRate;
88 procedure SetupInterestRate;
89 procedure SetupReceivedAtMaturity;
90 procedure SetupYieldPeriodic;
91 procedure SetupYieldDiscounted;
92 procedure SetupYieldMaturity;
93 procedure SetupTBillEquivYield;
94 procedure SetupTBillPrice;
95 procedure SetupTBillYield;
96 procedure SetupBondDuration;
97 procedure SetupModifiedDuration;
98 procedure SetupFutureValueSCHEDULE;
99 procedure SetupModifiedIRR;
100 procedure SetupNonperiodicIRR;
101 procedure SetupNonperiodicNPV;
102 procedure SetupDecliningBalance;
103 procedure SetupVariableDecliningBalance;
104 procedure SetupDollarToDecimal;
105 procedure SetupDollarToFraction;
106 procedure SetupDollarToDecimalText;
107 procedure SetupDollarToFractionStr;
108 procedure SetupRoundToDecimal;
109 procedure SetupIsCardValid;
110 procedure SetupNetPresentValue;
111 procedure SetupFutureValue;
112 procedure SetupPresentValue;
113 procedure SetupBondPrice;
114 procedure SetupPayment;
115 procedure SetupInternalRateOfReturn;
116 procedure ExtEditExit(Sender: TObject);
117 procedure IntEditExit(Sender: TObject);
118 procedure DisableFields;
119 procedure FunctionsClick(Sender: TObject);
120 procedure FormCreate(Sender: TObject);
121 procedure GoBtnClick(Sender: TObject);
122 procedure FT(F : TWinControl; T: Integer; S: string);
123 procedure DateEditExit(Sender: TObject);
124 procedure VAEditExit(Sender: TObject);
125 procedure DAEditExit(Sender: TObject);
126 procedure FreqEditExit(Sender: TObject);
127 procedure BasEditExit(Sender: TObject);
128 procedure TimEditExit(Sender: TObject);
129 procedure StrEditExit(Sender: TObject);
130 procedure VAEditEnter(Sender: TObject);
131 procedure DAEditEnter(Sender: TObject);
132 procedure BoolEditExit(Sender: TObject);
133 procedure BitBtn1Click(Sender: TObject);
134 private
135 { Private declarations }
136 public
137 { Public declarations }
138 end;
139
140 var
141 FinCalForm: TFinCalForm;
142
143 implementation
144
145 {$R *.DFM}
146
147
148 var
149 ExtVar : array[1..5] of Extended;
150 IntVar : array[1..5] of Integer;
151 DateVar : array[1..5] of TStDate;
152 FreqVar : TStFrequency;
153 BasVar : TStBasis;
154 TimVar : TStPaymentTime;
155 StrVar : String;
156 BoolVar : Boolean;
157 DateArray : array[0..29] of TStDate;
158 ValArray : array[0..29] of Double;
159
160
161 {------ Function parameters ------}
162
163 procedure TFinCalForm.FT(F : TWinControl; T: Integer; S: string);
164 begin
165 F.Enabled := true;
166 TEdit(F).Color := clYellow;
167 F.TabOrder := T;
168 F.Hint := S;
169 F.ShowHint := true;
170 end;
171
172 procedure TFinCalForm.SetupAccruedInterestPeriodic;
173 begin
174 FT(D1Edit, 1, 'Issue');
175 FT(D2Edit, 2, 'Settlement');
176 FT(D3Edit, 3, 'Maturity');
177 FT(E1Edit, 4, 'Rate');
178 FT(E2Edit, 5, 'Par');
179 FT(FreqEdit, 6, 'Frequency');
180 FT(BasEdit, 7, 'Basis');
181 end;
182
183 procedure TFinCalForm.SetupAccruedInterestMaturity;
184 begin
185 FT(D1Edit, 1, 'Issue');
186 FT(D2Edit, 2, 'Maturity');
187 FT(E1Edit, 3, 'Rate');
188 FT(E2Edit, 4, 'Par');
189 FT(BasEdit, 5, 'Basis');
190 end;
191
192 procedure TFinCalForm.SetupCumulativeInterest;
193 begin
194 FT(E1Edit, 1, 'Rate');
195 FT(I1Edit, 2, 'NPeriods');
196 FT(E2Edit, 3, 'Present Value');
197 FT(I2Edit, 4, 'Start Period');
198 FT(I3Edit, 5, 'End Period');
199 FT(FreqEdit, 6, 'Frequency');
200 FT(TimEdit, 7, 'Timing');
201 end;
202
203 procedure TFinCalForm.SetupCumulativePrincipal;
204 begin
205 SetupCumulativeInterest;
206 end;
207
208 procedure TFinCalForm.SetupDiscountRate;
209 begin
210 FT(D1Edit, 1, 'Settlement');
211 FT(D2Edit, 2, 'Maturity');
212 FT(E1Edit, 3, 'Price');
213 FT(E2Edit, 4, 'Redemption');
214 FT(BasEdit, 5, 'Basis');
215 end;
216
217 procedure TFinCalForm.SetupEffectiveInterestRate;
218 begin
219 FT(E1Edit, 1, 'Nominal Rate');
220 FT(FreqEdit, 2, 'Frequency');
221 end;
222
223 procedure TFinCalForm.SetupNominalInterestRate;
224 begin
225 FT(E1Edit, 1, 'Effective Rate');
226 FT(FreqEdit, 2, 'Frequency');
227 end;
228
229 procedure TFinCalForm.SetupInterestRate;
230 begin
231 FT(I1Edit, 1, 'NPeriods');
232 FT(E1Edit, 2, 'Payment');
233 FT(E2Edit, 3, 'Present Value');
234 FT(E3Edit, 4, 'Future Value');
235 FT(FreqEdit, 5, 'Frequency');
236 FT(TimEdit, 6, 'Timing');
237 FT(E4Edit, 7, 'Guess');
238 end;
239
240 procedure TFinCalForm.SetupReceivedAtMaturity;
241 begin
242 FT(D1Edit, 1, 'Settlement');
243 FT(D2Edit, 2, 'Maturity');
244 FT(E1Edit, 3, 'Investment');
245 FT(E2Edit, 4, 'Discount');
246 FT(BasEdit, 5, 'Basis');
247 end;
248
249 procedure TFinCalForm.SetupYieldPeriodic;
250 begin
251 FT(D1Edit, 1, 'Settlement');
252 FT(D2Edit, 2, 'Maturity');
253 FT(E1Edit, 3, 'Rate');
254 FT(E2Edit, 4, 'Price');
255 FT(E3Edit, 5, 'Redemption');
256 FT(FreqEdit, 6, 'Frequency');
257 FT(BasEdit, 7, 'Basis');
258 end;
259
260 procedure TFinCalForm.SetupYieldDiscounted;
261 begin
262 FT(D1Edit, 1, 'Settlement');
263 FT(D2Edit, 2, 'Maturity');
264 FT(E1Edit, 3, 'Price');
265 FT(E2Edit, 4, 'Redemption');
266 FT(BasEdit, 5, 'Basis');
267 end;
268
269 procedure TFinCalForm.SetupYieldMaturity;
270 begin
271 FT(D1Edit, 1, 'Issue');
272 FT(D2Edit, 2, 'Settlement');
273 FT(D3Edit, 3, 'Maturity');
274 FT(E1Edit, 4, 'Rate');
275 FT(E2Edit, 5, 'Price');
276 FT(BasEdit, 6, 'Basis');
277 end;
278
279 procedure TFinCalForm.SetupTBillEquivYield;
280 begin
281 FT(D1Edit, 1, 'Settlement');
282 FT(D2Edit, 2, 'Maturity');
283 FT(E1Edit, 3, 'Discount');
284 end;
285
286 procedure TFinCalForm.SetupTBillPrice;
287 begin
288 SetupTBillEquivYield;
289 end;
290
291 procedure TFinCalForm.SetupTBillYield;
292 begin
293 FT(D1Edit, 1, 'Settlement');
294 FT(D2Edit, 2, 'Maturity');
295 FT(E1Edit, 3, 'Price');
296 end;
297
298 procedure TFinCalForm.SetupBondDuration;
299 begin
300 FT(D1Edit, 1, 'Settlement');
301 FT(D2Edit, 2, 'Maturity');
302 FT(E1Edit, 3, 'Rate');
303 FT(E2Edit, 4, 'Yield');
304 FT(FreqEdit, 5, 'Frequency');
305 FT(BasEdit, 6, 'Basis');
306 end;
307
308 procedure TFinCalForm.SetupModifiedDuration;
309 begin
310 SetupBondDuration;
311 end;
312
313 procedure TFinCalForm.SetupFutureValueSCHEDULE;
314 begin
315 FT(E1Edit, 1, 'Principal');
316 FT(VAEdit, 2, 'Schedule');
317 FT(I1Edit, 3, 'NRates');
318 end;
319
320 procedure TFinCalForm.SetupModifiedIRR;
321 begin
322 FT(VAEdit, 1, 'Values');
323 FT(I1Edit, 2, 'NValues');
324 FT(E1Edit, 3, 'Finance Rate');
325 FT(E2Edit, 4, 'Reinvest Rate');
326 end;
327
328 procedure TFinCalForm.SetupNonperiodicIRR;
329 begin
330 FT(I1Edit, 1, 'NValues');
331 FT(VAEdit, 2, 'Values');
332 FT(DAEdit, 3, 'Dates');
333 FT(E1Edit, 4, 'Guess');
334 end;
335
336 procedure TFinCalForm.SetupNonperiodicNPV;
337 begin
338 FT(I1Edit, 1, 'NValues');
339 FT(E1Edit, 2, 'Rate');
340 FT(VAEdit, 3, 'Values');
341 FT(DAEdit, 4, 'Dates');
342 end;
343
344 procedure TFinCalForm.SetupDecliningBalance;
345 begin
346 FT(E1Edit, 1, 'Cost');
347 FT(E2Edit, 2, 'Salvage');
348 FT(I1Edit, 3, 'Life');
349 FT(I2Edit, 4, 'Period');
350 FT(I3Edit, 5, 'Month');
351 end;
352
353 procedure TFinCalForm.SetupVariableDecliningBalance;
354 begin
355 FT(E1Edit, 1, 'Cost');
356 FT(E2Edit, 2, 'Salvage');
357 FT(I1Edit, 3, 'Life');
358 FT(E3Edit, 4, 'Start');
359 FT(E4Edit, 5, 'End');
360 FT(E5Edit, 6, 'Factor');
361 FT(BoolEdit, 7, 'No Switch');
362 end;
363
364 procedure TFinCalForm.SetupDollarToDecimal;
365 begin
366 FT(E1Edit, 1, 'Fractional Dollar');
367 FT(I1Edit, 2, 'Fraction');
368 end;
369
370 procedure TFinCalForm.SetupDollarToFraction;
371 begin
372 FT(E1Edit, 1, 'Decimal Dollar');
373 FT(I1Edit, 2, 'Fraction');
374 end;
375
376 procedure TFinCalForm.SetupDollarToDecimalText;
377 begin
378 FT(E1Edit, 1, 'Decimal Dollar');
379 end;
380
381 procedure TFinCalForm.SetupDollarToFractionStr;
382 begin
383 FT(E1Edit, 1, 'Fractional Dollar');
384 FT(I1Edit, 2, 'Fraction');
385 end;
386
387 procedure TFinCalForm.SetupRoundToDecimal;
388 begin
389 FT(E1Edit, 1, 'Value');
390 FT(I1Edit, 2, 'Places');
391 FT(BoolEdit, 3, 'Bankers');
392 end;
393
394 procedure TFinCalForm.SetupIsCardValid;
395 begin
396 FT(StrEdit, 1, 'Card Number');
397 end;
398
399 procedure TFinCalForm.SetupNetPresentValue;
400 begin
401 FT(E1Edit, 1, 'Rate');
402 FT(I1Edit, 2, 'NValues');
403 FT(VAEdit, 3, 'Values');
404 end;
405
406 procedure TFinCalForm.SetupFutureValue;
407 begin
408 FT(E1Edit, 1, 'Rate');
409 FT(I1Edit, 2, 'NPeriods');
410 FT(E2Edit, 3, 'Payment');
411 FT(E3Edit, 4, 'Present Value');
412 FT(FreqEdit, 5, 'Frequency');
413 FT(TimEdit, 6, 'Timing');
414 end;
415
416 procedure TFinCalForm.SetupPresentValue;
417 begin
418 FT(E1Edit, 1, 'Rate');
419 FT(I1Edit, 2, 'NPeriods');
420 FT(E2Edit, 3, 'Payment');
421 FT(E3Edit, 4, 'Future Value');
422 FT(FreqEdit, 5, 'Frequency');
423 FT(TimEdit, 6, 'Timing');
424 end;
425
426 procedure TFinCalForm.SetupBondPrice;
427 begin
428 FT(D1Edit, 1, 'Settlement');
429 FT(D2Edit, 2, 'Maturity');
430 FT(E1Edit, 3, 'Rate');
431 FT(E2Edit, 4, 'Yield');
432 FT(E3Edit, 5, 'Redemption');
433 FT(FreqEdit, 6, 'Frequency');
434 FT(BasEdit, 7, 'Basis');
435 end;
436
437 procedure TFinCalForm.SetupPayment;
438 begin
439 FT(E1Edit, 1, 'Rate');
440 FT(I1Edit, 2, 'NPeriods');
441 FT(E2Edit, 3, 'Present Value');
442 FT(E3Edit, 4, 'Future Value');
443 FT(FreqEdit, 5, 'Frequency');
444 FT(TimEdit, 6, 'Timing');
445 end;
446
447 procedure TFinCalForm.SetupInternalRateOfReturn;
448 begin
449 FT(I1Edit, 1, 'NValues');
450 FT(VAEdit, 2, 'Values');
451 FT(E1Edit, 3, 'Guess');
452 end;
453
454
455
456 {------- Function selection -------}
457
458 procedure TFinCalForm.GoBtnClick(Sender: TObject);
459 var
460 FR : Extended;
461 SR : String;
462 begin
463 FR := 0;
464 SR := '';
465 case Functions.ItemIndex of
466 0 : FR := AccruedInterestMaturity(DateVar[1], DateVar[2], ExtVar[1],
467 ExtVar[2], BasVar);
468 1 : FR := AccruedInterestPeriodic(DateVar[1], DateVar[2], DateVar[3],
469 ExtVar[1], ExtVar[2], FreqVar, BasVar);
470 2 : FR := BondDuration(DateVar[1], DateVar[2], ExtVar[1], ExtVar[2],
471 FreqVar, BasVar);
472 3 : FR := BondPrice(DateVar[1], DateVar[2], ExtVar[1], ExtVar[2],
473 ExtVar[3], FreqVar, BasVar);
474 4 : FR := CumulativeInterest(ExtVar[1], IntVar[1], ExtVar[2], IntVar[2],
475 IntVar[3], FreqVar, TimVar);
476 5 : FR := CumulativePrincipal(ExtVar[1], IntVar[1], ExtVar[2], IntVar[2],
477 IntVar[3], FreqVar, TimVar);
478 6 : FR := DecliningBalance(ExtVar[1], ExtVar[2], IntVar[1], IntVar[2],
479 IntVar[3]);
480 7 : FR := DiscountRate(DateVar[1], DateVar[2], ExtVar[1], ExtVar[2],
481 BasVar);
482 8 : FR := DollarToDecimal(ExtVar[1], IntVar[1]);
483
484 9 : SR := DollarToDecimalText(ExtVar[1]);
485
486 10 : FR := DollarToFraction(ExtVar[1], IntVar[1]);
487
488 11 : SR := DollarToFractionStr(ExtVar[1], IntVar[1]);
489
490 12 : FR := EffectiveInterestRate(ExtVar[1], FreqVar);
491
492 13 : FR := FutureValue(ExtVar[1], IntVar[1], ExtVar[2], ExtVar[3],
493 FreqVar, TimVar);
494 14 : FR := FutureValueSchedule16(ExtVar[1], ValArray, IntVar[1]);
495
496 15 : FR := InterestRate(IntVar[1], ExtVar[1], ExtVar[2], ExtVar[3],
497 FreqVar, TimVar, ExtVar[4]);
498 16 : FR := InternalRateOfReturn16(ValArray, IntVar[1], ExtVar[1]);
499
500 17 : if IsCardValid(StrVar) then
501 SR := 'Valid card number'
502 else
503 SR := 'Invalid card number';
504 18 : FR := ModifiedDuration(DateVar[1], DateVar[2], ExtVar[1],
505 ExtVar[2], FreqVar, BasVar);
506 19 : FR := ModifiedIRR16(ValArray, IntVar[1], ExtVar[1], ExtVar[2]);
507
508 20 : FR := NetPresentValue16(ExtVar[1], ValArray, IntVar[1]);
509
510 21 : FR := NominalInterestRate(ExtVar[1], FreqVar);
511
512 22 : FR := NonPeriodicIRR16(ValArray, DateArray, IntVar[1], ExtVar[1]);
513
514 23 : FR := NonPeriodicNPV16(ExtVar[1], ValArray, DateArray, IntVar[1]);
515
516 24 : FR := Payment(ExtVar[1], IntVar[1], ExtVar[2], ExtVar[3],
517 FreqVar, TimVar);
518 25 : FR := PresentValue(ExtVar[1], IntVar[1], ExtVar[2], ExtVar[3],
519 FreqVar, TimVar);
520 26 : FR := ReceivedAtMaturity(DateVar[1], DateVar[2], ExtVar[1],
521 ExtVar[2], BasVar);
522 27 : FR := RoundToDecimal(ExtVar[1], IntVar[1], BoolVar);
523
524 28 : FR := TBillEquivYield(DateVar[1], DateVar[2], ExtVar[1]);
525
526 29 : FR := TBillPrice(DateVar[1], DateVar[2], ExtVar[1]);
527
528 30 : FR := TBillYield(DateVar[1], DateVar[2], ExtVar[1]);
529
530 31 : FR := VariableDecliningBalance(ExtVar[1], ExtVar[2], IntVar[1],
531 ExtVar[3], ExtVar[4], ExtVar[5], BoolVar);
532 32 : FR := YieldPeriodic(DateVar[1], DateVar[2], ExtVar[1], ExtVar[2],
533 ExtVar[3], FreqVar, BasVar);
534 33 : FR := YieldDiscounted(DateVar[1], DateVar[2], ExtVar[1],
535 ExtVar[2], BasVar);
536 34 : FR := YieldMaturity(DateVar[1], DateVar[2], DateVar[3], ExtVar[1],
537 ExtVar[2], BasVar);
538 end;
539 FResult.Text := FloatToStr(FR);
540 SResult.Text := SR;
541 end;
542
543 procedure TFinCalForm.FunctionsClick(Sender: TObject);
544 begin
545 DisableFields;
546 case Functions.ItemIndex of
547 0 : SetupAccruedInterestMaturity;
548 1 : SetupAccruedInterestPeriodic;
549 2 : SetupBondDuration;
550 3 : SetupBondPrice;
551 4 : SetupCumulativeInterest;
552 5 : SetupCumulativePrincipal;
553 6 : SetupDecliningBalance;
554 7 : SetupDiscountRate;
555 8 : SetupDollarToDecimal;
556 9 : SetupDollarToDecimalText;
557 10 : SetupDollarToFraction;
558 11 : SetupDollarToFractionStr;
559 12 : SetupEffectiveInterestRate;
560 13 : SetupFutureValue;
561 14 : SetupFutureValueSchedule;
562 15 : SetupInterestRate;
563 16 : SetupInternalRateOfReturn;
564 17 : SetupIsCardValid;
565 18 : SetupModifiedDuration;
566 19 : SetupModifiedIRR;
567 20 : SetupNetPresentValue;
568 21 : SetupNominalInterestRate;
569 22 : SetupNonperiodicIRR;
570 23 : SetupNonperiodicNPV;
571 24 : SetupPayment;
572 25 : SetupPresentValue;
573 26 : SetupReceivedAtMaturity;
574 27 : SetupRoundToDecimal;
575 28 : SetupTBillEquivYield;
576 29 : SetupTBillPrice;
577 30 : SetupTBillYield;
578 31 : SetupVariableDecliningBalance;
579 32 : SetupYieldPeriodic;
580 33 : SetupYieldDiscounted;
581 34 : SetupYieldMaturity;
582 end;
583 end;
584
585 {------- Misc utilities and set up -------}
586
587 procedure TFinCalForm.DisableFields;
588 begin
589 E1Edit.Enabled := false;
590 E1Edit.Color := clwhite;
591 E2Edit.Enabled := false;
592 E2Edit.Color := clwhite;
593 E3Edit.Enabled := false;
594 E3Edit.Color := clwhite;
595 E4Edit.Enabled := false;
596 E4Edit.Color := clwhite;
597 E5Edit.Enabled := false;
598 E5Edit.Color := clwhite;
599 I1Edit.Enabled := false;
600 I1Edit.Color := clwhite;
601 I2Edit.Enabled := false;
602 I2Edit.Color := clwhite;
603 I3Edit.Enabled := false;
604 I3Edit.Color := clwhite;
605 I4Edit.Enabled := false;
606 I4Edit.Color := clwhite;
607 I5Edit.Enabled := false;
608 I5Edit.Color := clwhite;
609 D1Edit.Enabled := false;
610 D1Edit.Color := clwhite;
611 D2Edit.Enabled := false;
612 D2Edit.Color := clwhite;
613 D3Edit.Enabled := false;
614 D3Edit.Color := clwhite;
615 D4Edit.Enabled := false;
616 D4Edit.Color := clwhite;
617 D5Edit.Enabled := false;
618 D5Edit.Color := clwhite;
619 DAEdit.Enabled := false;
620 DAEdit.Color := clwhite;
621 VAEdit.Enabled := false;
622 VAEdit.Color := clwhite;
623 StrEdit.Enabled := false;
624 StrEdit.Color := clwhite;
625 TimEdit.Enabled := False;
626 TimEdit.Color := clWhite;
627 BasEdit.Enabled := False;
628 BasEdit.Color := clWhite;
629 FreqEdit.Enabled := False;
630 FreqEdit.Color := clWhite;
631 BoolEdit.Enabled := false;
632 BoolEdit.Color := clWhite;
633 end;
634
635 procedure TFinCalForm.ExtEditExit(Sender: TObject);
636 begin
637 with (Sender as TEdit) do
638 ExtVar[Tag] := StrToFloat(Text);
639 end;
640
641 procedure TFinCalForm.IntEditExit(Sender: TObject);
642 begin
643 with (Sender as TEdit) do
644 IntVar[Tag] := StrToInt(Text);
645 end;
646
647 procedure TFinCalForm.DateEditExit(Sender: TObject);
648 begin
649 with (Sender as TEdit) do
650 DateVar[Tag] := DateStringToStDate('mm/dd/yy', Text, 1920);
651 end;
652
653 procedure TFinCalForm.StrEditExit(Sender: TObject);
654 begin
655 StrVar := TEdit(Sender).Text;
656 end;
657
658 procedure TFinCalForm.DAEditEnter(Sender: TObject);
659 begin
660 DAEdit.Row := 0;
661 DAEdit.Col := 0;
662 end;
663
664 procedure TFinCalForm.DAEditExit(Sender: TObject);
665 var
666 I : Integer;
667 begin
668 for I := 0 to IntVar[1] - 1 do
669 DateArray[I] := DateStringToStDate('mm/dd/yy', DAEdit.Cells[0,I], 1950);
670 end;
671
672 procedure TFinCalForm.VAEditEnter(Sender: TObject);
673 begin
674 VAEdit.Row := 0;
675 VAEdit.Col := 0;
676 end;
677
678 procedure TFinCalForm.VAEditExit(Sender: TObject);
679 var
680 I : Integer;
681 begin
682 for I := 0 to IntVar[1] - 1 do
683 ValArray[I] := StrToFloat(VAEdit.Cells[0,I]);
684 end;
685
686 procedure TFinCalForm.FreqEditExit(Sender: TObject);
687 begin
688 case FreqEdit.ItemIndex of
689 0: FreqVar := fqAnnual;
690 1: FreqVar := fqSemiAnnual;
691 2: FreqVar := fqQuarterly;
692 3: FreqVar := fqMonthly;
693 end;
694 end;
695
696 procedure TFinCalForm.BasEditExit(Sender: TObject);
697 begin
698 case BasEdit.ItemIndex of
699 0: BasVar := BasisNASD;
700 1: BasVar := BasisActAct;
701 2: BasVar := BasisAct360;
702 3: BasVar := BasisAct365;
703 4: BasVar := BasisEur30360;
704 end;
705 end;
706
707 procedure TFinCalForm.TimEditExit(Sender: TObject);
708 begin
709 case TimEdit.ItemIndex of
710 0: TimVar := ptEndOfPeriod;
711 1: TimVar := ptStartOfPeriod;
712 end;
713 end;
714
715 procedure TFinCalForm.BoolEditExit(Sender: TObject);
716 begin
717 BoolVar := BoolEdit.Checked;
718 end;
719
720 procedure TFinCalForm.FormCreate(Sender: TObject);
721 var
722 I : Integer;
723 begin
724 for I := 1 to 5 do begin
725 ExtVar[I] := 0;
726 DateVar[I] := CurrentDate;
727 IntVar[I] := 0;
728 end;
729 E1Edit.Text := FloatToStr(ExtVar[1]);
730 E2Edit.Text := FloatToStr(ExtVar[2]);
731 E3Edit.Text := FloatToStr(ExtVar[3]);
732 E4Edit.Text := FloatToStr(ExtVar[4]);
733 E5Edit.Text := FloatToStr(ExtVar[5]);
734 I1Edit.Text := IntToStr(IntVar[1]);
735 I2Edit.Text := IntToStr(IntVar[2]);
736 I3Edit.Text := IntToStr(IntVar[3]);
737 I4Edit.Text := IntToStr(IntVar[4]);
738 I5Edit.Text := IntToStr(IntVar[5]);
739 D1Edit.Text := DateToStr(DateVar[1]);
740 D2Edit.Text := DateToStr(DateVar[2]);
741 D3Edit.Text := DateToStr(DateVar[3]);
742 D4Edit.Text := DateToStr(DateVar[4]);
743 D5Edit.Text := DateToStr(DateVar[5]);
744 DisableFields;
745 for I := 0 to 29 do begin
746 ValArray[I] := 0;
747 DateArray[I] := CurrentDate;
748 end;
749 TimEdit.ItemIndex := 0;
750 TimVar := ptEndOfPeriod;
751 BasEdit.ItemIndex := 0;
752 BasVar := BasisNASD;
753 FreqEdit.ItemIndex := 0;
754 FreqVar := fqAnnual;
755 BoolEdit.Checked := false;
756 BoolVar := false;
757 Application.HintPause := 250;
758 Application.HintColor := clAqua;
759 end;
760
761 procedure TFinCalForm.BitBtn1Click(Sender: TObject);
762 begin
763 Close;
764 end;
765
766 end.

  ViewVC Help
Powered by ViewVC 1.1.20