2016-05-22 19 views
-3

Aus irgendeinem Grund wird dieser Code nur die gleiche wie die eingegebene Zahl ausgeben wie im TextEdit. Das Format der Ausgabe sollte wie seinMemo zeigt den gleichen Währungswert an, obwohl der Betrag in einer for-Schleife erhöht wird

  1. $ 3000
  2. $ 3300

und so weiter.

procedure TfrmProjection.BtnCalculateClick(Sender: TObject); 
var 
    counter, i : integer; 
    total, sales, average, projsales : double; 
begin 
    sales := StrtoFloat(edtSales.Text); 
    redOutput.Lines.Add('INCREASE IN SALES'); 
    for i := 1 to 12 do 
    redOutput.Lines.Add(FloattoStr(i) + #9 + #9 + FloattoStrf(sales, ffCurrency, 9, 2)); 
    sales:= sales * 1.1; 
end; 

Wer weiß, wie man in der Lage sein würde, dies zu korrigieren?

+0

Der gleiche Fehler wie vorherige Frage. Kannst du schon Debuggen? Bis Sie es tun, wird es Ihre Versuche lähmen und verbessern. –

+0

Wenn Sie einen Haltepunkt auf der 'for'-Zeile gesetzt und zwei Iterationen der Schleife durchlaufen haben, dann hätten Sie in weniger als der Zeit, in der Sie hierher gekommen sind, den Fehler gemeldet. Klicken Sie auf die Schaltfläche * Frage stellen * und geben Sie Ihre erste ein Satz von Text (viel weniger der Rest, Kopieren/Einfügen/Formatieren des Codes, etc). Lernen Sie, den Debugger zu verwenden, und Sie werden aufhören, völlig hilflos zu sein. –

Antwort

0

Sie haben einen Anfang Ende Block verlassen, so sales * 1.1 wird nie bis zum Ende aufgerufen.

procedure TForm1.Button1Click(Sender: TObject); 
var 
    counter, i: integer; 
    sales, average, projsales : double; 
begin 
    sales := StrtoFloat(edtSales.Text); 
    redOutput.Lines.Add('INCREASE IN SALES'); 
    for i := 1 to 12 do 
    begin 
    redOutput.Lines.Add(FloattoStr(i) + #9 + #9 + FloattoStrf(sales, ffCurrency, 9, 2)); 
    sales:= sales * 1.1; 
    end; 
end; 
+0

Ich kann nicht glauben, dass ich das verpasst habe :(Danke für die Hilfe –