Meistens geht es von links nach rechts, da Delphi den Code "normalerweise" in der Weise auswertet und in Code umwandelt, in welcher er vom Compiler gelesen wird.
Aber es kann dennoch sein, dass es anders abläuft, sei es durch Codeoptimierung oder durch typbedingte Erweiterungen.
Ich hatte mal den Fall, dass ein
a AND b
anders abläuft.
Eigentlich wird meistens erst a ausgwertet und dann b, falls a True ist,
ABER wenn Eines von Beiden ein Variant ist, dann wird zuerst Beides ausgewertet, in Variants umgewandelt und danach wird die das AND nicht als Assembler AND, sondern als Funktion VarAnd ausgewertet, deswegen auch zuerst die komplette Parameterauflösung.
Der Code war sowas wie
if (Wert <> '') and Auswerten(Wert) then ...
.