Zitat Zitat von heXXer Beitrag anzeigen
Code:
begin
  try
      alt2 := FloatToStr (alt);
      rechenart := hier müsste jetzt alt2 + rechenzeichen + edit1.text
      edit1.text := Floattostr (rechenart);
  except
  edit1.Text := ('Fehler');
end;
Mein Problem ist hier wirklich nur die Schreibweise darum habe ich alt auch wieder in ein string verwandelt um dann beide ergebnisse wieder in einen gleitkommewert zu umzuwandeln um damit zu rechnen -> dazu steht oben die schreibweise.
Also das verstehe ich noch nicht.
Erstens: Ich nehme an, da gehört "result := ..." und dann "edit1.text := Floattostr (result);", oder?
Zweitens: Warum wandelst du alt extra in einen Sting um, nur um es anschließend sofort wieder in ein Float umzuwandeln? o_O"
Drittens: Wie gesagt, in die Zeile gehört einfach Whiz' Case-Anweisung.
Also insgesamt wohl so:
Code (Delphi):
begin
  try
      case (rechenart) of 
        '+' : result := alt + StrToFloat (edit1.text);
        '-' : result := alt - StrToFloat (edit1.text);
      end;
      edit1.text := Floattostr (result);
  except
  edit1.Text := ('Fehler');
end;

Wie gesagt habe ich aber noch nie Delphi programmiert oder mich auch nur damit beschäftigt, also bezüglich Sichtbarkeit von Variablen musst du dich an andere halten. Aber eigentlich müssten alle verwendeten Variablen für alle die3se Funktionen sichtbar sein, außer result.

Und wie gesagt, damit die Zahlen beim Eingeben einer neuen Zahl dann wieder verschwinden, würde ich irgendeine Boolean Variable verwenden, die du im "="-Handler auf true setzt und dann in den Handlern der Zifferntasten abfragst (und wieder auf [tt]false[tt] setzt).
Genauso kannst du's dann auch mit jeweils einer Zeile bei "+" und "-" hinbekommen, dass auch da die Zahlen erstmal stehen bleiben und erst mit Drücken der nächsten Zifferntaste verschwinden.