AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

taschenrechner (erweiterung)

Ein Thema von safak67 · begonnen am 3. Jun 2009 · letzter Beitrag vom 4. Jun 2009
Thema geschlossen
Seite 4 von 6   « Erste     234 56      
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.359 Beiträge
 
Delphi 11 Alexandria
 
#31

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 21:41
Ich würde mal vermuten das liegt genau dadran:
Zitat von jaenicke:
// EDIT:
Zudem ist Result auch keine gute Idee, weil so der Rückgabewert einer Funktion heißt...
Warum nicht ein richtiger Name wie EvaluateTerm oder so...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#32

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 21:46
also soll ich alle result ein anderen namen geben
 
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.359 Beiträge
 
Delphi 11 Alexandria
 
#33

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 21:53
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...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#34

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 21:58
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='0then LabelAnzeige.caption:='';
   if LabelAnzeige.caption='Errorthen LabelAnzeige.caption:='';

   LabelAnzeige.caption := LabelAnzeige.caption + TSpeedButton(Sender).Caption;

end;

procedure TFormTR.SPZeichenClick(Sender: TObject);
begin

  if LabelAnzeige.caption='Errorthen 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.
Angehängte Dateien
Dateityp: zip calculator__964.zip (286,6 KB, 1x aufgerufen)
 
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.359 Beiträge
 
Delphi 11 Alexandria
 
#35

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 22:01
Zitat von jaenicke:
Du hast unten in der Implementierung das TFormTR. vor dem Namen der Funktion vergessen.
Das hatte ich geschrieben...
Du hast es aber oben bei der Deklaration auch dazu geschrieben und nicht nur unten...

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:
      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;
Ach ja: Und Zeile 80 muss weg...
Den ganzen Term kannst du nicht in eine Zahl umwandeln.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#36

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 22:10
wie mache ich das dann mit der Ausgabe?
 
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.359 Beiträge
 
Delphi 11 Alexandria
 
#37

Re: taschenrechner (erweiterung)

  Alt 3. Jun 2009, 22:16
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...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
 
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#38

Re: taschenrechner (erweiterung)

  Alt 4. Jun 2009, 07:20
Zitat von jaenicke:
Ach ja: Und Zeile 80 muss weg...
Den ganzen Term kannst du nicht in eine Zahl umwandeln.
Doch kann er, falls die Funktion tatsächlich Zeile 80 ereicht, enthält der Term nur eine Zahl.
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#39

Re: taschenrechner (erweiterung)

  Alt 4. Jun 2009, 07:25
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.
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#40

Re: taschenrechner (erweiterung)

  Alt 4. Jun 2009, 09:22
hat denn keiner ne idee wie ich das mit der ausgabe mache
 
Thema geschlossen
Seite 4 von 6   « Erste     234 56      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz