Ik verwees net iemand anders naar dit forum, maar eigenlijk heb ik de unit zelf nooit gebruikt. Dus dat ga ik binnenkort (lees binnenkort alsof Marcel dit postte) even proberen.

Wel vast een paar opmerkingen over de code voor zover ik die heb bekeken:
I fixed the bugs ( yeah! ). The unit is now also able to use Variables like "PI".
Dat zijn eigenlijk constanten natuurlijk
En waar zijn die gedefinieerd?

Op regel 152 ff. implementeer je de procedure AddVariable, deze moet je een TStringCalculator als argument meegeven, maar er komt een exception als deze niet bestaat. Waarom maak je niet a) een functie welke de aangemaakte parameter ook teruggeeft, zodat deze geen memory leak kan veroorzaken of b) maak TVariableList.AddVariable voor de programmeur ontoegankelijk, en maak een AddVariable methode in TStringCalculator die deze methode aanroept met zichzelf als argument (als er dan nog een exception komt gaat er echt iets goed mis).

Case FuncIndex of
1 { SINUS } : ...
Misschien kan je op regel 215, 220 en 225 symbolische of enumerated constanten gebruiken in plaats van 1, 2 en 3 voor de "built-in functions". Is ook wel zo handig als je later van dit soort functies wilt toevoegen.

Verder mijn complimenten voor de parsing routines, ik snap er geen hout van
Blijkbaar ben je er alleen nog niet aan toegekomen om een "gecompileerde" versie te maken.

Ook lijkt ReplaceNegativeValues (r. 686) me nog niet helemaal af

Is het handig een functie te maken waarmee je de VariableList kan clearen (ik had eigenlijk verwacht dat Reset dit zou doen)?

Nu nog eens kijken hoe het in de praktijk werkt