Er steckt in die LongWord-Variable aber keine negativen Werte rein. Bei Dingen wie w:= -w;
wäre das so, aber nicht hier.
das stimmt, aber er multipliziert einen Longword mit -1 und was ist das Ergebnis? ein Longword.
Und ich bekomme hier ehrlich gesagt auch keinen Überlauf. Welche Delphi-Version, welche Plattform? (Windows/Mac/... bzw. 32/64 Bit?)
schalte mal in den Compileroptionen die Überlaufprüfung ein.