Ich habe den Eindruck, dass die eigentliche BerechneTerm-Funktion vom Grundsatz her korrekt ist (vor allem im Hinblick auf den rekursiven Aufruf und die Übernahme der Zwischenergebnisse). Aber das fehlt immer noch:
Zitat von
Satty67:
Außerhalb steht (im ButtonClick von "=" möglicherweise)
LabelAnzeige.Caption := FloatToStr(BerechneTerm(LabelAnzeige.Caption));
Der Kommentar in spResultClick ist als gültiger Befehl auszuweisen.
Was läuft denn konkret falsch, wenn du diese Zeile aktivierst?
Aber die
Copy-Funktion ist falsch. Du musst zum Index die
gewünschte Anzahl von Zeichen hinzufügen. Beim zweiten Teil nimmst du immer die Gesamtlänge.
Übrigens solltest du Pos nicht wiederholt aufrufen, sondern mit einer Variablen position einmal benutzen:
Delphi-Quellcode:
position := Pos(Op,Formular);
if (position > 1) then ...
Jürgen
/Edit
Mist, so einfach ist es auch nicht. Wenn der Parameter "Count" zu groß ist, wird der Rest-String einfach bis zum Ende genommen. Aber in diesem Bereich würde ich nach dem Fehler suchen. Hast du es schon einmal mit dem Debugger oder auf Papier probiert?