Im Übrigen: Der Ordinalwert von True als LongBool, wie es glaube ich bei manchen C-Versionen genutzt wird, oder zumindest, und vor allem, wie es Windows in einigen Bibliotheksfunktionen nutzt, ist $FFFFFFFF. Wenn du deinen Code also mit LongBools machst, bekommst du am Ende die Anzahl der True-Werte negativ heraus.
True ist eben nicht wirklich als Boolean(1) definiert, sondern als alles, was nicht False ist, und False ist Boolean(0).