Ich würde den
Expression Evaluator (also das Ding, das eigentlich rechnet) in eine extra
Unit auslagern.
Vorteile
* Du könntest dem Control aus einen anderen Expression Evaluator unterschieben und so z.B. auch andere mathematische Funktionen ermöglichen.
* du kannst den Evaluator auch für andere Controls (z.B. TDBEdit) einsetzen
* du kannst den Evaluator unabhängig von deinem Control testen.
Dazu baust du dir ein kleines Testbett:
Delphi-Quellcode:
erg := Evaluate('
(3+7)*10*20%');
if erg <> '
20'
then // Test: sollte 20 ergeben
raise Exception.Create('
Berechnung falsch !');
Nachteile
* keine, ausser etwas Arbeit