Da werden
DCU-Dateien verwendet, die nicht zum Quelltext passen. Meistens liegt das an ungünstig gesetzten Such- und/oder Ausgabepfaden oder an nicht eindeutig benannten Units (z.B. Klassiker wie Main.pas in mehreren Projekten).
Das kannst du auch leicht prüfen, indem du vor und nach der Anweisung mit ShowMessage einfach mal den Wert von k ausgeben lässt. Vermutlich kommen diese MessageBoxen nicht, weil nicht der aktuelle Code verwendet wird.
Wenn der Dateiname nicht eindeutig ist, musst du die
Unit zuerst umbenennen, damit er das ist. Vermutlich ist das Problem dann schon behoben. Am einfachsten kannst du ansonsten nach <Unitname>.dcu überall auf der Festplatte suchen und alle diese Dateien löschen. Das geht z.B. mit
everything sehr schnell. (Das Tool ist ohnehin ein Muss auf jedem Rechner.)