Zitat von
madbrain:
hmmm
ok danke. werd ich mal probieren, aber..
Warum???
Wie Hansa schon sagte, es handelt sich um eine Compiler-Optimierung. Intern wird
I gar nicht für die Schleife benötigt, die Schleife wird durch das Register ECX gesteuert (dazu noch rückwärts). Wenn auf
I zugegriffen wird, wird zusätzlich ein anderes Register herangezogen (i.A. EAX bzw EDX). Wenn
I jetzt nicht lokal wäre, dann könnte ein zweiter Thread auf
I zugreifen, um zu ermitteln wie der aktuelle Wert von
I ist.
Oops,
I wird gar nicht genutzt, diese Abfrage würde fehlschlagen.
Um dieser Eventualität vorzubeugen muss
I lokal sein. Aus gleichem Grund kann
I auch innerhalb einer
for-Schleife nicht manipuliert werden.
Die Antwort mag nicht befriedigend für Dein Problem sein, ist aber der Grund dazu. Ich würde Dir empfehlen
for-Schleifen zu nutzen, die sind seit Delphi 3 oder 4 i.A. performanter als
while- und
repeat-Schleifen.
...
...