Herzlich willkommen in der Delphi-PRAXiS, DelphiE46.
Du musst in der Schleife den Wert korrigieren, wenn er den Restwert reflektieren soll:
Delphi-Quellcode:
const
SP_JAHR = 0;
SP_AFA = 1;
SP_REST = 2;
procedure TDemoForm.ButtonClick(Sender: TObject);
var
iJahr, nJahre: Integer;
cAfa, cWert: Currency;
d: Double;
begin
if TryStrToFloat(WertEdit.Text, d)
and TryStrToInt(JahreEdit.Text, nJahre) then
with StringGrid do
begin
cWert := d;
RowCount := nJahre + FixedRows;
cAfa := Trunc(cWert / nJahre);
for iJahr := 1 to nJahre do
begin
if iJahr = nJahre then
cAfa := cWert;
cWert := cWert - cAfa;
Cells[SP_JAHR, Pred(FixedRows + iJahr)] := IntToStr(iJahr);
Cells[SP_AFA, Pred(FixedRows + iJahr)] := Format('%m', [cAfa]);
Cells[SP_REST, Pred(FixedRows + iJahr)] := Format('%m', [cWert]);
end;
end;
end;
Freundliche Grüße