ok, die lösung war so einfach wie doof.
ich hab den c++ in delphi code umgeschrieben, und demensprechend angepasst.
das return wurde zu result.
was ich nicht wusste, ist, das result die funktion nicht beendet :<
insofern wurde mein zähler immer wieder auf 0 gesetzt.
delphi suckt.