der String 'X' ist doch auch kein Gleitkommawert!
Du mußt dieses X dann schon durch einen Wert (Zahl) ersetzen, bevor es ans Rechnen geht.
z.B.
Delphi-Quellcode:
'*', '/', '+', '-': Begin
If SL[SL.Count - 1] = '' Then SL.Delete(SL.Count - 1);
SL.Add(S[i]);
SL.Add('');
End;
'X': Begin
If SL[SL.Count - 1] = '' Then SL.Delete(SL.Count - 1);
SL.Add({Wert für X});
SL.Add('');
End;
statt direkt einem String mit dem Wert bei
{Wert für X} anzugeben,
kannst du dir auch eine Funktion basteln
und an der Stelle eintragen
Delphi-Quellcode:
funktion GibVariable(Name: String): String;
begin
... // hier über den Namen irgendwo, z.B. aus 'ner Liste, den Wert raussuchen
end;
und dann
Delphi-Quellcode:
'X', 'Y', 'Z': Begin // hier gehn dann auch noch andere Namen
If SL[SL.Count - 1] = '' Then SL.Delete(SL.Count - 1);
SL.Add(GibVariable(S[i]));
SL.Add('');
End;