Dein Code würde garantiert nicht gehen... Du verwendest AWorkCount im Timer, hast dieses aber nirgends gesetzt ^^
Einspruch: AWorkCount ist ein Parameter der an die Prozedur die mit OnWork verknüpft ist übergeben wird, also existiert er doch!
Round(1000*(AWorkCount-FBytes)/(GetTickCount-FTime))
Also das macht ja mal überhaupt keinen Sinn. Du vergleichst die Zeit ab dem Anfang des Downloads mit dem 1000-fachem Downloadvolumen, welches zwischen zwei Aufrufen von IdHTTPWork geladen wurde. Es muss +FBytes heißen. Außerdem musst du dann drunter auch
FBytes:=AWorkCount + FBytes;
schreiben.
Grund: Du willst ja eine mittlere Geschwindigkeit, nicht irgendwas.
Bernhard