Einzelnen Beitrag anzeigen

jdiephaus

Registriert seit: 29. Nov 2016
15 Beiträge
 
#1

Memory Funktion Taschenrechner

  Alt 22. Mai 2017, 22:09
Delphi-Version: 5
Hallo liebe Community,

ich hoffe ihr könnt mir etwas auf die Sprünge helfen, deswegen hier direkt mein Problem:

Programm ist ein Taschenrechner.
Das Problem dreht sich um die Memory Funktion. Falls jemand damit nichts anfangen kann:

MR Taste : Übergibt aktuellen Display Wert an Speicher
MC Taste : Setzt Speicher + Display Wert auf 0
M+ Taste : Addiert Speicher Wert zu aktuellem Display Wert
M- Taste : Subtrahiert Speicher Wert von aktuellem Display Wert

Mein Code:
Code:
procedure TForm1.MemoryFunction(Sender: TObject);
var mem: ansistring;
begin
 if Sender is TSpeedButton then
    case TSpeedButton(Sender).Name of
      'TsbMR': mem := label1.Caption;
      'TsbMC': begin
               mem := '0';
               label1.Caption := '0';
               end;
      'TsbMMinus': label1.Caption := FloatToStr(StrToFloat(label1.Caption) - StrToFloat(mem));
      'TsbMPlus': label1.Caption := FloatToStr(StrToFloat(label1.Caption) + StrToFloat(mem));
    end;
end;
Mein Problem besteht in der Übergabe des Display Wert an den Speicher Wert. Es wird kein String übergeben.

Beim Drücken von M+ und M- kommt Exception EConvertError: "" is an invalid float.

Wenn ich mem einen festen Wert z.B mem := '5' zuordne, funktioniert alles ohne Probleme (ausser natürlich die Taste MR zum Setzen des Speicher Werts).

(Zeichen werden übrigens auch als ansistring an label1.Caption übergeben, falls das irgendeine Rolle spielen könnte.)

Hat jemand von euch zufällig eine Idee bzw. kann mir sagen, wo ich dumm war?

Vielen Dank für eure Aufmerksamkeit!
  Mit Zitat antworten Zitat