Schau mal
hier.
Auf Delphi-Treff war mal ein guter Artikel dazu, finde den gerade aber nicht mehr.
PS: Thread solltest du auch ein einer T(Object)List verwalten, z.B.. Da hast du auch nicht das Problem einen freien Platz suchen zu müssen.
// edit
Soweit ich das noch weiß, optimiert der Compiler das dahingehend, da die CPU scheinbar leichter und schneller um 1 dekrementieren als inkrementieren kann. Aber einen Unterscheid sollte in deinem Programm nicht auftreten. Beim Debuggen findet du lediglich die "falschen" Werte, intern wird aber alles richtig ausgeführt.
// edit 2:
Hier, ganz unten findest du das auf Delphi Treff.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)