Зачем дублировать усилия? Всегда включайте функцию Execute. Это сэкономит время и гораздо упростит работу при изменении поведения окна диалога.

Получение доступа к окну диалога Новая закладная

Теперь, когда окно диалога Новая закладная закончено, все, что нам нужно сделать, это создать обработчик события для кнопки Новая закладная калькулятора закладных. Этот обработчик события будет выполнять окно диалога Новая закладная и отображать новую амортизационную таблицу.

Выберите форму калькулятора закладных и дважды щелкните мышью на кнопке Новая закладная, чтобы создать обработчик события OnClick. Когда появится окно Unit, введите код, приведенный в Листинге 9.2.

ЛИСТИНГ 9.2 Выполнение окна диалога Новая закладная и отображение результатов

procedure TMortgageForm btnNewClick(Sender TObject); begin With NewMortDlg Do

( Выполнение окна диалога Новая закладная } If Execute Then begin
{ вычисление закладной } Mortgage.Init (MortgageAmount, InterestRate, NumberOfPayments, 12) ;
( и отображение результатов } InitMor tgageD i spiay;
end;
end;
Procedure TMortgageForm.InitMortgageDisplay;
var I : Integer;

TempPayNum,TempPayPrin,TempPayInt,TempPrmSoFar,TempIntSoFar,

TempExtraPrin,TempBalance, Temp : StringlS;

TempPayment : TPayment:

begin ( Инициализировать метки }

Str ((Mortgage.Principal):0:2, Temp); lblMortgageAmt.Caption := '$'+Temp;

Str ((Mortgage.Interest*100):0:2, Temp); lbllRate.Caption := Temp + '%',

Str ((Mortgage.MonthlyPI):0:2, Temp);
1Ы Pay men tAmt. Caption := '$' + Temp;
lblNumPmts Caption := IntToStr (Mortgage.Periods);
{ Теперь инициализируем сетку закладной } WITH MortgageGrid DO BEGIN RowCount := Mortgage.Payments.Count + 1; Cells[0,0] := 'Payment #' ; -Cells[1,0] := 'Principal';
Cells [2,0] : = 'Interests-Cells [3,0] := 'Prin. So Far'; Cells[4,0] := 'Int. So Far'; Cells [5,0] := 'Extra Prin.'; Cells[6,0] := 'Balance';
end;

{ Затем мы переносим данные из объекта закладной в }

{ строчную сетку формы : }

FOR I := 0 ТО Mortgage.Periods 1 DO BEGIN TempPayment := Mortgage.Payments.Items[I]; TempPayment.GetStringForm(TempPayNum,

TempPayPrin, TempPaylnt, TempPrinSoFar, TempIntSoFar, TempExtraPrin, TempBalance) ;
WITH MortgageGrid DO begin
Cells[0,1+1] := TempPayNum; Cells[1,1+1] := TempPayPrin; Cells[2,1+1] := TempPaylnt; Cells[3,1+1] := TempPrinSoFar; Cells[4,1+1] := TempIntSoFar; Cells[5,1+1] := TempExtraPrin; Cells[6,1+1] := TempBalance;
end;
end;
{ и делаем сетку закладной видимой} MortgageGrid.Visible := True;
end;

Процедура события btnNewClick в Листинге 9.2 выполняет окно диалога Новая закладная. Если Execute возвращает True, тогда программа вычисляет новую закладную, вызывая процедуру MortgageJnit из MORTLIB.PAS. После того, как закладная пересчитана, вызывается InitMortgageDisplay, чтобы установить метки, показывающие параметры закладной и чтобы заполнить строковую сетку информацией о платежах. Последнее, что делает InitMortgageDisplay, это устанавливает свойство Visible сетки в True, чтобы сетка отображалась.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в среде Delphi



Новости за месяц

  • Декабрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31