Den X865 habe ich schon öfters früher gelesen, das ist ein Bug, der
nur in Delphi
7 auftritt und etwas mit der Code-Optimierung zu tun hat.
Tritt er auch auf, wenn du die Optimierung ausschaltest?
Wenn er dann weg ist,
gibt es glaube ich einen Patch irgendwo für D7 (mal bei Emba nachfragen, ich glaube der Patch auf 7.1 behebt es...) oder du brauchst eine neuere (oder auch ältere) Delphi-Version....oder...du schaltest die Code-Optimierung für das Projekt generell aus, was aber nicht gerade optimal ist...
Edit:
In der
QC steht "Fixed in Build 9.0.1761.24408", das wäre aber dann D2005. Heisst, der Bug wurde in D7 nicht behoben und es gibt auch keinen Patch...
Quelle:
http://qc.embarcadero.com/wc/qcmain.aspx?rc=6119
Edit 2:
Ja ist wohl leider so, der Fehler wurde erst in D2005 gefixt:
http://edn.embarcadero.com/article/32837
Was ich auch mal probieren würde, ist zwar ein blöder Workarond, aber vielleicht geht es ja: Leg eine zweite Int-variable als Pointer zu FPartcount an und dereferenziere sie in der Funktion anstatt Fpartcount direkt zu nehmen...oder wrappe das Copy() in einer externen Funktion...oder deklariere die Funktion als inline...vielleicht umschifft es ja den Bug...