Moin Ernie,
dass die letzte Variante funktioniert freut mich zwar, aber das WARUM kann ich irgendwie nicht so recht beantworten.
Im Prinzip entspricht meine zweite Variante der Deinen, und meine erste und dritte, die's ja nicht taten meiner vierten, die funktioniert
Es wird da ja nichts anderes gemacht, als der Speicher für den String reserviert, und dieser dann mit dem Inhalt von Edit1.Text gefüllt.
Eine Idee, was die Ursache sein könnte hätte ich noch.
Falls Du den Mut hast das noch mal zu probieren:
Statt
Delphi-Quellcode:
sWork := Edit1.Text;
Ergebnis := Calculate(@sWork[1],
RAD);
probier mal bitte
Delphi-Quellcode:
sWork := Edit1.Text+#00;
Ergebnis := Calculate(@sWork[1],
RAD);