![]() |
Re: taschenrechner (erweiterung)
Ich würde mal vermuten das liegt genau dadran:
Zitat:
|
Re: taschenrechner (erweiterung)
also soll ich alle result ein anderen namen geben
|
Re: taschenrechner (erweiterung)
Das wäre sinnvoll die Funktion umzubenennen, und wenn dann immer noch ein Fehler kommt, musst du den eben noch einmal posten.
Aber das "Result := " darfst du natürlich nicht ändern... |
Re: taschenrechner (erweiterung)
Liste der Anhänge anzeigen (Anzahl: 1)
also ich habe immer noch die gleiche fehlermeldung, ich poste mal alles rein..
edit: also ich hab die funktion umbenannt danach auch result hat beides nicht funktioniert,, immer noch die gleiche fehlermeldung
Delphi-Quellcode:
unit Calculator_Main;
interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls; type TFormTR = class(TForm) Sp7: TSpeedButton; Sp8: TSpeedButton; Sp9: TSpeedButton; Sp4: TSpeedButton; Sp5: TSpeedButton; Sp6: TSpeedButton; Sp1: TSpeedButton; Sp2: TSpeedButton; Sp3: TSpeedButton; Sp0: TSpeedButton; DecimalSep: TSpeedButton; spResult: TSpeedButton; SpPlus: TSpeedButton; SpMinus: TSpeedButton; SpMal: TSpeedButton; SpDurch: TSpeedButton; LabelAnzeige: TLabel; SpeedButton1: TSpeedButton; procedure SpZahlClick(Sender: TObject); procedure SpZeichenClick(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); function TFormTR.BerechneTerm(ATerm: string): Double; private { Private-Deklarationen } op : char; public { Public-Deklarationen } end; var FormTR: TFormTR; implementation {$R *.DFM} procedure TFormTR.SpeedButton1Click(Sender: TObject); begin LabelAnzeige.Caption := '0'; end; function TFormTR.BerechneTerm(ATerm: string): Double; var Op: string; iPos, i: Integer; Value1, Value2: Double; begin for i := 0 to 3 do begin case i of 0: Op := '+'; 1: Op := '-'; 2: Op := '*'; 3: Op := '/'; end; iPos := Pos(Op, ATerm); if iPos > 0 then begin Value1 := BerechneTerm(Copy(ATerm, 1, iPos - 1)); Value2 := BerechneTerm(Copy(ATerm, iPos + 1, Length(ATerm))); case i of 0: EvaluateTerm := Value1 + Value2; 1: EvaluateTerm := Value1 - Value2; 2: EvaluateTerm := Value1 * Value2; 3: EvaluateTerm := Value1 / Value2; end; Exit; end; end; EvaluateTerm := StrToFloat(ATerm); end; procedure TFormTR.SpZahlClick(Sender: TObject); begin if LabelAnzeige.caption='0' then LabelAnzeige.caption:=''; if LabelAnzeige.caption='Error' then LabelAnzeige.caption:=''; LabelAnzeige.caption := LabelAnzeige.caption + TSpeedButton(Sender).Caption; end; procedure TFormTR.SPZeichenClick(Sender: TObject); begin if LabelAnzeige.caption='Error' then LabelAnzeige.caption:='0'; if sender = spPlus then begin op:='+' end; if sender = spMinus then begin op:='-' end; if sender = spMal then begin op:='x' end; if sender = spDurch then begin op:='/' end; LabelAnzeige.caption := LabelAnzeige.caption + op; end; end. |
Re: taschenrechner (erweiterung)
:wall: :wall: :wall:
Zitat:
Du hast es aber oben bei der Deklaration auch dazu geschrieben und nicht nur unten... :roll: Oben in der Zeile vor private muss das TFormTR. weg. Und außerdem darfst du das Result unten nicht auch da ersetzen, wo gar nicht der Funktionsaufruf gemeint ist...
Delphi-Quellcode:
Ach ja: Und Zeile 80 muss weg...
Value1 := BerechneTerm(Copy(ATerm, 1, iPos - 1));
Value2 := BerechneTerm(Copy(ATerm, iPos + 1, Length(ATerm))); case i of 0: Result := Value1 + Value2; 1: Result := Value1 - Value2; 2: Result := Value1 * Value2; 3: Result := Value1 / Value2; end; Den ganzen Term kannst du nicht in eine Zahl umwandeln. |
Re: taschenrechner (erweiterung)
wie mache ich das dann mit der Ausgabe?
|
Re: taschenrechner (erweiterung)
Naja, ein Beispiel zur Ausgabe als ShowMessage habe ich ja schon geschrieben...
Da wo du BerechneTerm aufrufst musst du halt auch die Ausgabe des Rückgabewerts machen... |
Re: taschenrechner (erweiterung)
Zitat:
|
Re: taschenrechner (erweiterung)
also ich habe paar sachen versucht, aber das mit der ausgabe kriege ich immer noch nicht hin.. hat einer ne idee..?
bin am verzweifeln, hääte nicht gedacht das parsen so schwer sein kann. |
Re: taschenrechner (erweiterung)
hat denn keiner ne idee wie ich das mit der ausgabe mache
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz